mirror of
https://github.com/kp2pml30/dotfiles.git
synced 2026-02-16 23:34:42 +04:00
66 lines
1.8 KiB
Nix
66 lines
1.8 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nixos-wsl = {
|
|
url = "github:nix-community/NixOS-WSL/main";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-24.11";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = inputs@{ self, nixpkgs, nixos-wsl, home-manager, ... }:
|
|
let
|
|
rootPath = self;
|
|
additionalArgs = { inherit inputs rootPath; };
|
|
importArg = inputs // { pkgs = nixpkgs; lib = nixpkgs.lib; } // additionalArgs;
|
|
hostNameMod = name: { networking.hostName = "kp2pml30-${name}"; };
|
|
makeNamedSys = nameArg: arg: {
|
|
"${nameArg}" =
|
|
nixpkgs.lib.nixosSystem
|
|
((builtins.removeAttrs arg ["modules"]) // { specialArgs = additionalArgs; modules = arg.modules ++ [(hostNameMod nameArg)]; });
|
|
};
|
|
makeSys = { sys }: [
|
|
(makeNamedSys "server-${sys}" {
|
|
system = sys;
|
|
modules = [
|
|
./nix/common.nix
|
|
./nix/server.nix
|
|
];
|
|
})
|
|
|
|
(makeNamedSys "personal-${sys}" {
|
|
system = sys;
|
|
modules = [
|
|
./nix/common.nix
|
|
./nix/personal.nix
|
|
];
|
|
})
|
|
|
|
(makeNamedSys "personal-${sys}-wsl" {
|
|
system = sys;
|
|
modules = [
|
|
./nix/wsl.nix
|
|
./nix/common.nix
|
|
./nix/personal.nix
|
|
];
|
|
})
|
|
] ;
|
|
in
|
|
{
|
|
nixosConfigurations =
|
|
builtins.foldl'
|
|
(x: y: x // y)
|
|
{}
|
|
(builtins.concatMap makeSys [ { sys = "x86_64-linux"; } ])
|
|
;
|
|
};
|
|
}
|
|
|
|
# example
|
|
# + nix --extra-experimental-features 'nix-command flakes' build --out-link /tmp/nixos-rebuild.ydOEVb/nixos-rebuild '.#nixosConfigurations."wsl-amd64".config.system.build.nixos-rebuild' --show-trace
|
|
# ++ readlink -e /tmp/nixos-rebuild.ydOEVb/nixos-rebuild
|
|
# + p=/nix/store/rd18dwsifrcyghim695q18nhvyfykxxg-nixos-rebuild
|
|
# exec /nix/store/rd18dwsifrcyghim695q18nhvyfykxxg-nixos-rebuild/bin/nixos-rebuild switch --flake .#wsl-amd64
|