homelab-gitops/devenv.nix
gwg313 185a4a7efb
update devenv
Signed-off-by: gwg313 <gwg313@pm.me>
2026-06-26 20:50:44 -04:00

100 lines
2 KiB
Nix

{
pkgs,
lib,
config,
inputs,
...
}: {
# https://devenv.sh/basics/
env.GREET = "devenv";
env = {
};
# https://devenv.sh/packages/
packages = with pkgs; [
kubectl
talosctl
kubeseal
kubeconform
yamllint
shellcheck
gitleaks
yamlfmt
go-task
];
# https://devenv.sh/languages/
# languages.rust.enable = true;
# https://devenv.sh/processes/
# processes.cargo-watch.exec = "cargo-watch";
# https://devenv.sh/services/
# services.postgres.enable = true;
# https://devenv.sh/scripts/
scripts.hello.exec = ''
echo hello from $GREET
'';
enterShell = ''
hello
git --version
'';
# https://devenv.sh/tasks/
# tasks = {
# "myproj:setup".exec = "mytool build";
# "devenv:enterShell".after = [ "myproj:setup" ];
# };
# https://devenv.sh/tests/
enterTest = ''
echo "Running tests"
git --version | grep --color=auto "${pkgs.git.version}"
'';
# https://devenv.sh/pre-commit-hooks/
git-hooks.hooks = {
check-yaml.enable = true;
end-of-file-fixer.enable = true;
trim-trailing-whitespace.enable = true;
yamlfmt = {
enable = true;
entry = "yamlfmt";
args = ["-in-place"];
files = "\\.ya?ml$";
language = "system";
};
yamllint.enable = true;
shellcheck.enable = true;
kubeconform = {
enable = true;
entry = "kubeconform";
args = [
"-strict"
"-summary"
"-ignore-missing-schemas"
"-schema-location"
"https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/{{.ResourceKind}}-{{.ResourceAPIVersion}}.json"
"-schema-location"
"default"
];
files = "\\.ya?ml$";
language = "system";
pass_filenames = true;
};
gitleaks = {
enable = true;
entry = "gitleaks detect --no-git -v --redact";
language = "system";
pass_filenames = false;
};
};
# See full reference at https://devenv.sh/reference/options/
}