Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
3 files changed, 26 insertions, 8 deletions
-rw-r--r--autoconfig.nix20
-rw-r--r--flake.nix13
-rw-r--r--machines/juno/sysidentity.nix1
diff --git a/autoconfig.nix b/autoconfig.nix
new file mode 100644
index 0000000..5460362
--- /dev/null
+++ b/autoconfig.nix
@@ -0,0 +1,20 @@
+{ inputs, ... }:
+let
+ inherit (inputs) nixpkgs;
+ inherit (nixpkgs) lib;
+in {
+ configurations =
+ lib.mapAttrs
+ (dir: _:
+ let
+ inherit (import ./machines/${dir}/sysidentity.nix) sysidentity;
+ in lib.nixosSystem {
+ system = sysidentity.arch;
+ modules = [
+ ./machines/${dir}/hardware-configuration.nix
+ ./configuration.nix
+ ];
+ }
+ )
+ (lib.filterAttrs (_: type: type == "directory") (builtins.readDir ./machines));
+}
diff --git a/flake.nix b/flake.nix
index 2bf0889..3726b18 100644
--- a/flake.nix
+++ b/flake.nix
@@ -5,14 +5,11 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
};
- outputs = { self, nixpkgs, ... }: {
+ outputs = { self, nixpkgs, ... }@inputs:
+ let
+ autoconfig = import ./autoconfig.nix { inherit inputs; };
+ in {
# ThinkPad X270
- nixosConfigurations.juno = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- ./machines/juno/hardware-configuration.nix
- ./configuration.nix
- ];
- };
+ nixosConfigurations = autoconfig.configurations;
};
}
diff --git a/machines/juno/sysidentity.nix b/machines/juno/sysidentity.nix
index 1bc6575..88a4e1c 100644
--- a/machines/juno/sysidentity.nix
+++ b/machines/juno/sysidentity.nix
@@ -2,5 +2,6 @@
sysidentity = {
name = "juno";
type = "laptop";
+ arch = "x86_64-linux";
};
}