72 lines
2.7 KiB
Nix
72 lines
2.7 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-21.11";
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
home-manager.url = "github:nix-community/home-manager/release-21.11";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs-stable";
|
|
qois-infrastructure.url = "path:/etc/nixos/qois-infrastructure";
|
|
fabianhauser-etaxes-sg.url = "github:fabianhauser/etaxes-sg-nix";
|
|
fabianhauser-etaxes-sg.inputs.nixpkgs.follows = "nixpkgs-stable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs-unstable, nixpkgs-stable, home-manager
|
|
, qois-infrastructure, fabianhauser-etaxes-sg, nixos-hardware, ... }@inputs:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgsUnstable = import nixpkgs-unstable {
|
|
inherit system;
|
|
config.allowUnfree = true; # For vscode
|
|
};
|
|
in {
|
|
checks.${system}.formatCheck = let pkgs = pkgsUnstable;
|
|
in pkgs.runCommand "nixfmt-check" { } ''
|
|
set -euo pipefail
|
|
cd ${self}
|
|
${pkgs.findutils}/bin/find . -type f -name '*.nix' -exec ${pkgs.nixfmt}/bin/nixfmt --check {} +
|
|
mkdir $out
|
|
'';
|
|
|
|
# Build with `nixos-rebuild --flake .#<hostname>` or
|
|
# `nix build .#nixosConfigurations.<hostname>.config.system.build.toplevel
|
|
nixosConfigurations = let
|
|
hosts = [ "speer" "hummelberg" ];
|
|
home-manager-config = {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
extraSpecialArgs = {
|
|
inherit pkgsUnstable;
|
|
pkgsEtaxesSg = fabianhauser-etaxes-sg.packages.${system};
|
|
};
|
|
users.fhauser = import ./home/fhauser/default.nix;
|
|
};
|
|
};
|
|
mapHostnameToAttr = host:
|
|
nixpkgs-stable.lib.nixosSystem {
|
|
inherit system;
|
|
specialArgs.hardwareModules = nixos-hardware.nixosModules;
|
|
modules = [
|
|
qois-infrastructure.nixosModule
|
|
home-manager.nixosModules.home-manager
|
|
home-manager-config
|
|
./host/${host}/default.nix
|
|
];
|
|
};
|
|
in pkgsUnstable.lib.genAttrs hosts mapHostnameToAttr;
|
|
|
|
homeConfigurations = {
|
|
fhauser = home-manager.lib.homeManagerConfiguration rec {
|
|
inherit system;
|
|
username = "fhauser";
|
|
configuration = import ./home/${username}/default.nix;
|
|
extraSpecialArgs = { inherit pkgsUnstable; };
|
|
|
|
# Update the state version as needed.
|
|
# See the changelog here:
|
|
# https://nix-community.github.io/home-manager/release-notes.html#sec-release-21.05
|
|
stateVersion = "21.11";
|
|
};
|
|
};
|
|
};
|
|
}
|