diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/README.md | 6 | ||||
| -rw-r--r-- | modules/darwin/default.nix | 18 | ||||
| -rw-r--r-- | modules/default.nix | 6 | ||||
| -rw-r--r-- | modules/flake/default.nix | 3 | ||||
| -rw-r--r-- | modules/flake/terranix.nix | 59 | ||||
| -rw-r--r-- | modules/nixos/default.nix | 22 | ||||
| -rw-r--r-- | modules/nixos/desktop/plasma/default.nix | 5 | ||||
| -rw-r--r-- | modules/nixos/profiles/server.nix | 5 | ||||
| -rw-r--r-- | modules/shared/traits/home-manager.nix | 3 |
9 files changed, 98 insertions, 29 deletions
diff --git a/modules/README.md b/modules/README.md deleted file mode 100644 index 7e45a1f..0000000 --- a/modules/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# ./modules/ - -These directory names are probably self explanatory - -In case they aren't: `darwin/` contains nix-darwin modules, `nixos/` contains -NixOS modules, and `shared` contains modules I use on both! diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix index 26ea30f..af7701e 100644 --- a/modules/darwin/default.nix +++ b/modules/darwin/default.nix @@ -1,9 +1,13 @@ { - imports = [ - ../shared - ./defaults - ./desktop - ./profiles - ./traits - ]; + flake.darwinModules = { + default = { + imports = [ + ../shared + ./defaults + ./desktop + ./profiles + ./traits + ]; + }; + }; } diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..e8a1832 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./darwin + ./nixos + ]; +} diff --git a/modules/flake/default.nix b/modules/flake/default.nix new file mode 100644 index 0000000..2cb7409 --- /dev/null +++ b/modules/flake/default.nix @@ -0,0 +1,3 @@ +{ + terranix = ./terranix.nix; +} diff --git a/modules/flake/terranix.nix b/modules/flake/terranix.nix new file mode 100644 index 0000000..cbf57b9 --- /dev/null +++ b/modules/flake/terranix.nix @@ -0,0 +1,59 @@ +{ + config, + lib, + pkgs, + flake-parts-lib, + inputs, + ... +}: + +let + inherit (flake-parts-lib) mkSubmoduleOptions; + + namespace = "terranix"; + cfg = config.${namespace}; +in + +{ + options.terranix = mkSubmoduleOptions { + package = lib.mkOption { + type = lib.types.functionTo lib.types.package; + default = pkgs: pkgs.opentofu; + defaultText = lib.literalExpression "pkgs: pkgs.opentofu"; + apply = fn: fn pkgs; + description = "The Terraform-compatible implementation to use."; + example = lib.literalExpression "pkgs: pkgs.terraform"; + }; + + modules = lib.mkOption { + type = lib.types.listOf lib.types.deferredModule; + default = [ ]; + }; + }; + + config = { + perSystem = + { + lib, + pkgs, + system, + ... + }: + + let + terranixConfiguration = inputs.terranix.lib.terranixConfiguration { + inherit system; + inherit (cfg) modules; + }; + in + + { + apps.tf = { + program = pkgs.writeShellScriptBin "tf" '' + ln -sf ${terranixConfiguration} config.tf.json + exec ${lib.getExe cfg.package} "$@" + ''; + }; + }; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 82e4b93..47a814d 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,11 +1,15 @@ { - imports = [ - ../shared - ./defaults - ./desktop - ./mixins - ./profiles - ./services - ./traits - ]; + flake.nixosModules = { + default = { + imports = [ + ../shared + ./defaults + ./desktop + ./mixins + ./profiles + ./services + ./traits + ]; + }; + }; } diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix index dceded3..c021d46 100644 --- a/modules/nixos/desktop/plasma/default.nix +++ b/modules/nixos/desktop/plasma/default.nix @@ -2,11 +2,10 @@ config, lib, pkgs, - inputs, + inputs', ... }: let - inherit (pkgs.stdenv.hostPlatform) system; cfg = config.desktop.plasma; in { @@ -26,7 +25,7 @@ in systemPackages = [ pkgs.haruna # mpv frontend - inputs.krunner-nix.packages.${system}.default # thank you leah + inputs'.krunner-nix.packages.default # thank you leah ]; }; diff --git a/modules/nixos/profiles/server.nix b/modules/nixos/profiles/server.nix index e3e785b..a4eae44 100644 --- a/modules/nixos/profiles/server.nix +++ b/modules/nixos/profiles/server.nix @@ -1,8 +1,7 @@ { config, lib, - pkgs, - inputs, + inputs', ... }: let @@ -21,7 +20,7 @@ in lib.mkMerge [ { # All servers are most likely on stable, so we want to pull in some newer packages from time to time - _module.args.unstable = inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; + _module.args.unstable = inputs'.nixpkgs.legacyPackages; boot.tmp.cleanOnBoot = lib.mkDefault true; diff --git a/modules/shared/traits/home-manager.nix b/modules/shared/traits/home-manager.nix index f901cdc..01539a3 100644 --- a/modules/shared/traits/home-manager.nix +++ b/modules/shared/traits/home-manager.nix @@ -2,6 +2,7 @@ config, lib, inputs, + inputs', ... }: let @@ -17,7 +18,7 @@ in useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { - inherit inputs; + inherit inputs inputs'; }; }; }; |
