meta: Refactor + rearrange
flake.nix is getting bigger and complicated. Might need some fix afterall. A simple and dumb refactor would be to just collect all common modules and host-specific files in single files and import them in flake. Should make things lot simpler. but it is becomming apparent that this is where I can use more Nix skills in general.
This commit is contained in:
parent
9f331b0652
commit
9e781b1647
1 changed files with 66 additions and 59 deletions
125
flake.nix
125
flake.nix
|
@ -22,73 +22,80 @@
|
|||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, emacs-overlay, agenix, nixos-hardware, ... }: {
|
||||
nixosConfigurations = {
|
||||
outputs =
|
||||
{ self
|
||||
, nixpkgs
|
||||
, home-manager
|
||||
, emacs-overlay
|
||||
, agenix
|
||||
, nixos-hardware
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
common-modules = [
|
||||
./cachix.nix
|
||||
./modules/nix.nix
|
||||
./modules/common.nix
|
||||
];
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
|
||||
# The Workhorse
|
||||
enterprise = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
# The Workhorse
|
||||
enterprise = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = common-modules ++ [
|
||||
|
||||
# Overlays
|
||||
{ nixpkgs.overlays = [ emacs-overlay.overlay ]; }
|
||||
# Overlays
|
||||
{ nixpkgs.overlays = [ emacs-overlay.overlay ]; }
|
||||
|
||||
# Common
|
||||
./cachix.nix
|
||||
# Modules and module config
|
||||
./modules/fish.nix
|
||||
agenix.nixosModules.age
|
||||
./modules/agenix.nix
|
||||
|
||||
# Modules and module config
|
||||
./modules/nix.nix
|
||||
./modules/common.nix
|
||||
./modules/fish.nix
|
||||
agenix.nixosModules.age
|
||||
./modules/agenix.nix
|
||||
# Host-specific config
|
||||
./hosts/enterprise/sound.nix
|
||||
./hosts/enterprise/backup.nix
|
||||
./hosts/enterprise/nvidia.nix
|
||||
./hosts/enterprise/configuration.nix
|
||||
|
||||
# Host-specific config
|
||||
./hosts/enterprise/sound.nix
|
||||
./hosts/enterprise/backup.nix
|
||||
./hosts/enterprise/nvidia.nix
|
||||
./hosts/enterprise/configuration.nix
|
||||
# User-specific config : Home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.payas = import ./hosts/enterprise/home.nix;
|
||||
}
|
||||
|
||||
# User-specific config : Home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.payas = import ./hosts/enterprise/home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
];
|
||||
# My Pi
|
||||
bebop = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
modules = common-modules ++ [
|
||||
|
||||
# Modules and module config
|
||||
./modules/fish.nix
|
||||
./modules/monitoring/monitoring.nix
|
||||
|
||||
# Host-specific config
|
||||
nixos-hardware.nixosModules.raspberry-pi-4
|
||||
./hosts/bebop/configuration.nix
|
||||
./hosts/bebop/syncthing.nix
|
||||
|
||||
# User-specific config : Home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.payas = import ./hosts/bebop/home.nix;
|
||||
}
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# My Pi
|
||||
bebop = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
|
||||
# Common
|
||||
./cachix.nix
|
||||
|
||||
# Modules and module config
|
||||
./modules/nix.nix
|
||||
./modules/common.nix
|
||||
./modules/fish.nix
|
||||
./modules/monitoring/monitoring.nix
|
||||
|
||||
# Host-specific config
|
||||
nixos-hardware.nixosModules.raspberry-pi-4
|
||||
./hosts/bebop/configuration.nix
|
||||
./hosts/bebop/syncthing.nix
|
||||
|
||||
# User-specific config : Home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.payas = import ./hosts/bebop/home.nix;
|
||||
}
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Reference in a new issue