From 9227f864a66a39beeda1af3b9f9c9c356da7a001 Mon Sep 17 00:00:00 2001 From: "quentin@aristote.fr" Date: Thu, 24 Aug 2023 15:46:13 +0200 Subject: devenv: add languages.nix module --- modules/devenv/default.nix | 3 +++ modules/devenv/languages/default.nix | 3 +++ modules/devenv/languages/nix.nix | 29 +++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 modules/devenv/default.nix create mode 100644 modules/devenv/languages/default.nix create mode 100644 modules/devenv/languages/nix.nix (limited to 'modules/devenv') diff --git a/modules/devenv/default.nix b/modules/devenv/default.nix new file mode 100644 index 0000000..273b94f --- /dev/null +++ b/modules/devenv/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./languages ]; +} diff --git a/modules/devenv/languages/default.nix b/modules/devenv/languages/default.nix new file mode 100644 index 0000000..2f4fc86 --- /dev/null +++ b/modules/devenv/languages/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./nix.nix ]; +} diff --git a/modules/devenv/languages/nix.nix b/modules/devenv/languages/nix.nix new file mode 100644 index 0000000..6db3af4 --- /dev/null +++ b/modules/devenv/languages/nix.nix @@ -0,0 +1,29 @@ +{ + config, + options, + lib, + pkgs, + devenv, + ... +}: let + cfg = config.languages.nix; +in { + disabledModules = ["${devenv}/src/modules/languages/nix.nix"]; + + options.languages.nix = { + enable = lib.mkEnableOption "tools for nix development"; + formatter = lib.mkPackageOption pkgs "nix formatter" { + default = ["alejandra"]; + }; + packaging.enable = lib.mkEnableOption "tools for writing nix derivations"; + }; + + config = { + packages = lib.mkIf cfg.enable (with pkgs; [cfg.formatter deadnix] ++ lib.optionals cfg.packaging.enable [nix-prefetch-scripts nix-prefetch-github]); + + pre-commit.hooks = { + deadnix.enable = lib.mkDefault true; + "${cfg.formatter.pname}".enable = lib.mkDefault true; + }; + }; +} -- cgit v1.2.3