2024-10-26 06:16:31 +00:00
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
|
|
cfg = config.sconfig.devtools;
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.sconfig.devtools.enable = lib.mkEnableOption "Development Tools";
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
environment.systemPackages = with pkgs;
|
|
|
|
[
|
2024-10-26 06:27:35 +00:00
|
|
|
black
|
|
|
|
cargo
|
|
|
|
efm-langserver
|
|
|
|
errcheck
|
|
|
|
go
|
|
|
|
gopls
|
2024-10-26 06:30:38 +00:00
|
|
|
kubectl
|
|
|
|
kubernetes-helm
|
2024-10-26 06:27:35 +00:00
|
|
|
lua-language-server
|
|
|
|
nil
|
|
|
|
nodePackages.prettier
|
|
|
|
nodePackages.typescript-language-server
|
|
|
|
pyright
|
|
|
|
rust-analyzer
|
|
|
|
rustc
|
2024-10-26 06:16:31 +00:00
|
|
|
rustc.llvmPackages.lld
|
2024-10-26 06:27:35 +00:00
|
|
|
rustfmt
|
2024-10-26 06:30:38 +00:00
|
|
|
stern
|
2024-10-29 05:23:53 +00:00
|
|
|
terraform
|
|
|
|
terraform-ls
|
2024-10-26 06:27:35 +00:00
|
|
|
vscode-langservers-extracted
|
|
|
|
yaml-language-server
|
2024-10-26 06:30:38 +00:00
|
|
|
|
|
|
|
# dedicated script, because bash aliases dont work with `watch`
|
|
|
|
(writeShellScriptBin "k" "exec kubectl \"$@\"")
|
|
|
|
|
|
|
|
(google-cloud-sdk.withExtraComponents
|
|
|
|
[ google-cloud-sdk.components.gke-gcloud-auth-plugin ])
|
2024-10-26 06:16:31 +00:00
|
|
|
];
|
2024-10-26 06:30:38 +00:00
|
|
|
programs.bash.interactiveShellInit = ''
|
2024-10-29 05:23:53 +00:00
|
|
|
alias t=terraform
|
|
|
|
complete -C terraform t
|
2024-10-26 06:30:38 +00:00
|
|
|
source <(kubectl completion bash)
|
|
|
|
complete -F __start_kubectl k
|
|
|
|
'';
|
2024-10-26 06:16:31 +00:00
|
|
|
};
|
|
|
|
}
|