Simon Bruder
05a72217aa
This removes the manual modules that use options to activate hardware configuration. It seems to general (e.g. newer Intel GPUs require different opencl icd) or not flexible enough (in case of the ssd module). Closes #21.
63 lines
1.6 KiB
Nix
63 lines
1.6 KiB
Nix
let
|
|
sources = import ./nix/sources.nix;
|
|
|
|
krops = sources.krops;
|
|
lib = import "${krops}/lib";
|
|
kropsPkgs = import "${krops}/pkgs" { };
|
|
|
|
kropsDeploy =
|
|
{ hostname
|
|
, target ? null
|
|
, secrets ? true
|
|
, extraSources ? { }
|
|
}:
|
|
let
|
|
source = lib.evalSource [
|
|
{
|
|
nixpkgs.git = {
|
|
ref = sources.nixpkgs.rev;
|
|
url = https://github.com/NixOS/nixpkgs;
|
|
shallow = true;
|
|
};
|
|
nixos-hardware.git = {
|
|
ref = sources.nixos-hardware.rev;
|
|
url = https://github.com/NixOS/nixos-hardware;
|
|
};
|
|
config.file = {
|
|
path = toString ./.;
|
|
filters = [
|
|
{
|
|
type = "exclude";
|
|
pattern = ".git";
|
|
}
|
|
{
|
|
type = "exclude";
|
|
pattern = "*.qcow2";
|
|
}
|
|
];
|
|
};
|
|
nixos-config.symlink = "config/machines/${hostname}/configuration.nix";
|
|
}
|
|
(lib.mkIf secrets {
|
|
secrets.pass = {
|
|
dir = toString ~/.password-store;
|
|
name = "nixos/machines/${hostname}";
|
|
};
|
|
})
|
|
extraSources
|
|
];
|
|
in
|
|
kropsPkgs.krops.writeDeploy "deploy-${hostname}" {
|
|
source = source;
|
|
target = lib.mkTarget target // {
|
|
extraOptions = [
|
|
# force allocation of tty to allow aborting with ^C and to show build progress
|
|
"-t"
|
|
];
|
|
};
|
|
};
|
|
in
|
|
builtins.mapAttrs
|
|
(hostname: configuration: kropsDeploy ({ inherit hostname; } // configuration))
|
|
(import ./machines)
|