From 23f8df7396d35744069a4bda0d1d38a55ff64b79 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Mon, 21 Jul 2025 07:31:45 -0700 Subject: refactoring to use flake-parts and automatic imports of hosts This is the first step in a large refactoring to use flake-parts, and to automatically imports hosts based on paths. --- nix/modules/default-darwin.nix | 7 +++++++ nix/modules/default.nix | 7 +++++-- nix/modules/home.nix | 38 ++++++++++++++++++++++++++++++++++++++ nix/modules/host-config.nix | 15 +++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 nix/modules/default-darwin.nix create mode 100644 nix/modules/home.nix create mode 100644 nix/modules/host-config.nix (limited to 'nix/modules') diff --git a/nix/modules/default-darwin.nix b/nix/modules/default-darwin.nix new file mode 100644 index 0000000..b42a079 --- /dev/null +++ b/nix/modules/default-darwin.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + imports = [ + ./home.nix + ./host-config.nix + ]; +} diff --git a/nix/modules/default.nix b/nix/modules/default.nix index 3314156..b42a079 100644 --- a/nix/modules/default.nix +++ b/nix/modules/default.nix @@ -1,4 +1,7 @@ +{ ... }: { - fcuny-net = import ./fcuny-net.nix; - # Add other modules here as you create them + imports = [ + ./home.nix + ./host-config.nix + ]; } diff --git a/nix/modules/home.nix b/nix/modules/home.nix new file mode 100644 index 0000000..6b6b518 --- /dev/null +++ b/nix/modules/home.nix @@ -0,0 +1,38 @@ +{ + userProfiles, + lib, + ... +}: +let + inherit (lib) mkOption; + inherit (lib.types) + submodule + listOf + attrsOf + str + ; +in +{ + options = { + home = mkOption { + type = attrsOf ( + submodule ( + { name, ... }: + { + options = { + name = mkOption { + type = str; + default = name; + }; + profiles = mkOption { + type = listOf str; + apply = map (v: userProfiles.${v}); + }; + }; + } + ) + ); + default = { }; + }; + }; +} diff --git a/nix/modules/host-config.nix b/nix/modules/host-config.nix new file mode 100644 index 0000000..b10d85f --- /dev/null +++ b/nix/modules/host-config.nix @@ -0,0 +1,15 @@ +{ lib, ... }: +let + inherit (lib) mkOption; + inherit (lib.types) + attrs + ; +in +{ + options = { + adminUser = mkOption { + type = attrs; + default = { }; + }; + }; +} -- cgit v1.2.3