diff --git a/lib/build-clan/default.nix b/lib/build-clan/default.nix index 244fca4f..eaccc25e 100644 --- a/lib/build-clan/default.nix +++ b/lib/build-clan/default.nix @@ -4,6 +4,8 @@ , machines ? { } # allows to include machine-specific modules i.e. machines.${name} = { ... } , clanName # Needs to be (globally) unique, as this determines the folder name where the flake gets downloaded to. , clanIcon ? null # A path to an icon to be used for the clan, should be the same for all machines +, pkgsForSystem ? (_system: null) # A map from arch to pkgs, if specified this nixpkgs will be only imported once for each system. + # This improves performance, but all nipxkgs.* options will be ignored. }: let machinesDirs = lib.optionalAttrs (builtins.pathExists "${directory}/machines") (builtins.readDir (directory + /machines)); @@ -78,13 +80,23 @@ let configsPerSystem = builtins.listToAttrs (builtins.map (system: lib.nameValuePair system - (lib.mapAttrs (name: _: nixosConfiguration { inherit name system; }) allMachines)) + (lib.mapAttrs + (name: _: nixosConfiguration { + inherit name system; + pkgs = pkgsForSystem system; + }) + allMachines)) supportedSystems); configsFuncPerSystem = builtins.listToAttrs (builtins.map (system: lib.nameValuePair system - (lib.mapAttrs (name: _: args: nixosConfiguration (args // { inherit name system; })) allMachines)) + (lib.mapAttrs + (name: _: args: nixosConfiguration (args // { + inherit name system; + pkgs = pkgsForSystem system; + })) + allMachines)) supportedSystems); in { diff --git a/pkgs/clan-cli/clan_cli/vms/run.py b/pkgs/clan-cli/clan_cli/vms/run.py index abeb28f9..46fedfe0 100644 --- a/pkgs/clan-cli/clan_cli/vms/run.py +++ b/pkgs/clan-cli/clan_cli/vms/run.py @@ -201,5 +201,4 @@ def run_command(args: argparse.Namespace) -> None: def register_run_parser(parser: argparse.ArgumentParser) -> None: parser.add_argument("machine", type=str, help="machine in the flake to run") - parser.add_argument("--flake-url", type=str, help="flake url") parser.set_defaults(func=run_command)