From dc583ece4f0448c3d3292e22872bc94ab21e3db3 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Wed, 3 Jul 2024 12:29:22 +0200 Subject: [PATCH] clanModules: init packages --- clanModules/flake-module.nix | 1 + clanModules/packages/README.md | 4 +++ clanModules/packages/default.nix | 19 ++++++++++++ clanModules/packages/roles/default.nix | 1 + docs/mkdocs.yml | 1 + inventory.json | 42 ++++++++++++++++++++++++++ 6 files changed, 68 insertions(+) create mode 100644 clanModules/packages/README.md create mode 100644 clanModules/packages/default.nix create mode 100644 clanModules/packages/roles/default.nix diff --git a/clanModules/flake-module.nix b/clanModules/flake-module.nix index 8bc1c152..a5601ca8 100644 --- a/clanModules/flake-module.nix +++ b/clanModules/flake-module.nix @@ -10,6 +10,7 @@ single-disk = ./single-disk; matrix-synapse = ./matrix-synapse; moonlight = ./moonlight; + packages = ./packages; postgresql = ./postgresql; root-password = ./root-password; sshd = ./sshd; diff --git a/clanModules/packages/README.md b/clanModules/packages/README.md new file mode 100644 index 00000000..9512a280 --- /dev/null +++ b/clanModules/packages/README.md @@ -0,0 +1,4 @@ +--- +description = "Define package sets from nixpkgs and install them on one or more machines" +categories = ["packages"] +--- diff --git a/clanModules/packages/default.nix b/clanModules/packages/default.nix new file mode 100644 index 00000000..1f5c323e --- /dev/null +++ b/clanModules/packages/default.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options.clan.packages = { + packages = lib.mkOption { + type = lib.types.listOf lib.types.str; + description = "The packages to install on the machine"; + }; + }; + config = { + environment.systemPackages = map ( + pName: lib.getAttrFromPath (lib.splitString "." pName) pkgs + ) config.clan.packages.packages; + }; +} diff --git a/clanModules/packages/roles/default.nix b/clanModules/packages/roles/default.nix new file mode 100644 index 00000000..ffcd4415 --- /dev/null +++ b/clanModules/packages/roles/default.nix @@ -0,0 +1 @@ +{ } diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index beb534e4..1432872d 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -59,6 +59,7 @@ nav: - reference/clanModules/localsend.md - reference/clanModules/matrix-synapse.md - reference/clanModules/moonlight.md + - reference/clanModules/packages.md - reference/clanModules/postgresql.md - reference/clanModules/root-password.md - reference/clanModules/single-disk.md diff --git a/inventory.json b/inventory.json index d86c13ce..bd9d2570 100644 --- a/inventory.json +++ b/inventory.json @@ -9,6 +9,48 @@ } }, "services": { + "packages": { + "editors": { + "meta": { + "name": "Some editor packages" + }, + "roles": { + "default": { + "machines": ["minimal-inventory-machine"] + } + }, + "machines": { + "minimal-inventory-machine": { + "config": { + "packages": ["zed-editor"] + } + } + }, + "config": { + "packages": ["vim"] + } + }, + "browsing": { + "meta": { + "name": "Web browsing packages" + }, + "roles": { + "default": { + "machines": ["minimal-inventory-machine"] + } + }, + "machines": { + "minimal-inventory-machine": { + "config": { + "packages": ["chromium"] + } + } + }, + "config": { + "packages": ["firefox"] + } + } + }, "single-disk": { "default": { "meta": {