From 45935b999e8b442a20a0a6c67e3efffde3270684 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Thu, 13 Oct 2022 19:05:31 +0200 Subject: [PATCH] Decouple system from flake --- flake.nix | 52 +++++++++++++++++++++++++++---------------------- lib/default.nix | 6 +++--- lib/host.nix | 4 +--- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/flake.nix b/flake.nix index 49190b6..57574c2 100644 --- a/flake.nix +++ b/flake.nix @@ -12,38 +12,44 @@ outputs = inputs@{ self, nixpkgs, nixos-unstable, home-manager, vim-extra-plugins }: let - system = "x86_64-linux"; + x64System = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - overlays = [ - (final: prev: { inherit unstable; }) - vim-extra-plugins.overlays.default - ]; + wrapPkgsSystem = { system }: + import nixpkgs rec { + inherit system; + unstable = wrapUnstablePkgsSystem { inherit system; }; + config.allowUnfree = true; + overlays = [ + (final: prev: { inherit unstable; }) + vim-extra-plugins.overlays.default + ]; + }; + + wrapUnstablePkgsSystem = { system }: + import nixos-unstable { + inherit system; + config.allowUnfree = true; + }; + + pkgsX64 = wrapPkgsSystem { system = x64System; }; + unstableX64 = wrapPkgsSystem { system = x64System; }; + + utilsX64 = import ./lib { + inherit nixpkgs nixos-unstable home-manager; + pkgs = pkgsX64; + unstable = unstableX64; + system = x64System; }; - - unstable = import nixos-unstable { - inherit system; - config.allowUnfree = true; - }; - - utils = import ./lib { - inherit pkgs unstable nixpkgs nixos-unstable home-manager; - }; - - inherit (utils) host; - inherit (utils) user; in { nixosConfigurations = { - architect = host.mkHost { + architect = utilsX64.host.mkHost { name = "architect"; users = [{ user = "giulio"; roles = [ ]; }]; }; - gAluminum = host.mkHost { + gAluminum = utilsX64.host.mkHost { name = "gAluminum"; users = [{ user = "giulio"; @@ -51,7 +57,7 @@ }]; roles = [ "gnome" ]; }; - proxy = host.mkHost { + proxy = utilsX64.host.mkHost { name = "proxy"; users = [ ]; }; diff --git a/lib/default.nix b/lib/default.nix index 56a2f57..901410b 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,6 +1,6 @@ -{ pkgs, unstable, nixpkgs, nixos-unstable, home-manager, ... }: rec { - user = import ./user.nix { inherit pkgs unstable; }; +{ pkgs, unstable, nixpkgs, nixos-unstable, home-manager, system, ... }: rec { + user = import ./user.nix { inherit pkgs unstable system; }; host = import ./host.nix { - inherit pkgs nixpkgs unstable nixos-unstable home-manager user; + inherit pkgs nixpkgs unstable nixos-unstable home-manager user system; }; } diff --git a/lib/host.nix b/lib/host.nix index 1c92a54..2e49a21 100644 --- a/lib/host.nix +++ b/lib/host.nix @@ -1,10 +1,8 @@ -{ pkgs, nixpkgs, nixos-unstable, unstable, home-manager, user, ... }: +{ pkgs, nixpkgs, nixos-unstable, unstable, home-manager, user, system, ... }: { mkHost = { name, users, roles ? [ ], imports ? [ ] }: let - system = "x86_64-linux"; - mkRole = role: import (../roles + "/${role}.nix"); users_mod = (map (u: