Simplify build systems
This commit is contained in:
parent
b994e4698c
commit
9535108bb7
6 changed files with 94 additions and 131 deletions
161
lib/default.nix
161
lib/default.nix
|
|
@ -1,60 +1,51 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
self,
|
||||
lib,
|
||||
additionalMods ? {
|
||||
nixos = [ ];
|
||||
home = [ ];
|
||||
},
|
||||
mods ? {
|
||||
nixos = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.stylix.nixosModules.stylix
|
||||
../base
|
||||
../home
|
||||
../modules
|
||||
];
|
||||
home = [
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
inputs.ironbar.homeManagerModules.default
|
||||
inputs.oxicalc.homeManagerModules.default
|
||||
inputs.oxishut.homeManagerModules.default
|
||||
inputs.oxinoti.homeManagerModules.default
|
||||
inputs.oxidash.homeManagerModules.default
|
||||
inputs.oxipaste.homeManagerModules.default
|
||||
inputs.hyprdock.homeManagerModules.default
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
inputs.reset.homeManagerModules.default
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.dashvim.homeManagerModules.dashvim
|
||||
../modules
|
||||
];
|
||||
},
|
||||
...
|
||||
}:
|
||||
{
|
||||
/**
|
||||
# build_systems
|
||||
{ inputs, pkgs, self, lib, additionalMods ? {
|
||||
nixos = [ ];
|
||||
home = [ ];
|
||||
}, mods ? {
|
||||
nixos = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.stylix.nixosModules.stylix
|
||||
../base
|
||||
../home
|
||||
../modules
|
||||
];
|
||||
home = [
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
inputs.ironbar.homeManagerModules.default
|
||||
inputs.oxicalc.homeManagerModules.default
|
||||
inputs.oxishut.homeManagerModules.default
|
||||
inputs.oxinoti.homeManagerModules.default
|
||||
inputs.oxidash.homeManagerModules.default
|
||||
inputs.oxipaste.homeManagerModules.default
|
||||
inputs.hyprdock.homeManagerModules.default
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
inputs.reset.homeManagerModules.default
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
inputs.dashvim.homeManagerModules.dashvim
|
||||
../modules
|
||||
];
|
||||
}, ... }: {
|
||||
/* *
|
||||
# build_systems
|
||||
|
||||
Builds system given a list of system names which are placed within your hosts/ directory. Note that each system has its own directory in hosts/ as well.
|
||||
Builds system given a list of system names which are placed within your hosts/ directory. Note that each system has its own directory in hosts/ as well.
|
||||
|
||||
A minimal configuration requires the file configuration.nix within each system directory, this will be the base config that is used across both NisOS and home-manager, specific optional files can also be added, hardware.nix for NisOS configuration and home.nix for home-manager configuration.
|
||||
A minimal configuration requires the file configuration.nix within each system directory, this will be the base config that is used across both NisOS and home-manager, specific optional files can also be added, hardware.nix for NisOS configuration and home.nix for home-manager configuration.
|
||||
|
||||
The second parameter is the root of your configuration, which should be ./. in most cases.
|
||||
The second parameter is the root of your configuration, which should be ./. in most cases.
|
||||
|
||||
`root`
|
||||
`root`
|
||||
|
||||
: the root path of your configuration
|
||||
: the root path of your configuration
|
||||
|
||||
# Example usage
|
||||
:::{.example}
|
||||
```nix
|
||||
nixosConfigurations =
|
||||
(build_systems [ "nixos" ] ./.);
|
||||
```
|
||||
:::
|
||||
# Example usage
|
||||
:::{.example}
|
||||
```nix
|
||||
nixosConfigurations =
|
||||
(build_systems [ "nixos" ] ./.);
|
||||
```
|
||||
:::
|
||||
*/
|
||||
# let
|
||||
# paths = builtins.readDir ;
|
||||
|
|
@ -63,53 +54,31 @@
|
|||
# );
|
||||
|
||||
# in
|
||||
build_systems =
|
||||
root:
|
||||
builtins.listToAttrs (
|
||||
map
|
||||
(name: {
|
||||
name = name;
|
||||
value =
|
||||
let
|
||||
mod = root + /hosts/${name}/configuration.nix;
|
||||
additionalNixosConfig = root + /hosts/${name}/hardware.nix;
|
||||
additionalHomeConfig = root + /hosts/${name}/home.nix;
|
||||
in
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit
|
||||
self
|
||||
inputs
|
||||
pkgs
|
||||
mod
|
||||
additionalHomeConfig
|
||||
root
|
||||
;
|
||||
hostName = name;
|
||||
homeMods = mods.home;
|
||||
additionalHomeMods = additionalMods.home;
|
||||
};
|
||||
modules =
|
||||
[ mod ]
|
||||
++ mods.nixos
|
||||
++ additionalMods.nixos
|
||||
++ inputs.nixpkgs.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
||||
++ inputs.nixpkgs.lib.optional (builtins.pathExists mod) mod;
|
||||
};
|
||||
})
|
||||
(
|
||||
lib.lists.remove "" (
|
||||
lib.attrsets.mapAttrsToList (name: fType: if fType == "directory" then name else "") (
|
||||
builtins.readDir (root + /hosts)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
build_systems = root:
|
||||
builtins.listToAttrs (map (name: {
|
||||
name = name;
|
||||
value = let
|
||||
mod = root + /hosts/${name}/configuration.nix;
|
||||
additionalNixosConfig = root + /hosts/${name}/hardware.nix;
|
||||
additionalHomeConfig = root + /hosts/${name}/home.nix;
|
||||
in inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit self inputs pkgs mod additionalHomeConfig root;
|
||||
hostName = name;
|
||||
homeMods = mods.home;
|
||||
additionalHomeMods = additionalMods.home;
|
||||
};
|
||||
modules = [ mod ] ++ mods.nixos ++ additionalMods.nixos
|
||||
++ inputs.nixpkgs.lib.optional
|
||||
(builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
||||
++ inputs.nixpkgs.lib.optional (builtins.pathExists mod) mod;
|
||||
};
|
||||
}) (lib.lists.remove "" (lib.attrsets.mapAttrsToList
|
||||
(name: fType: if fType == "directory" then name else "")
|
||||
(builtins.readDir (root + /hosts)))));
|
||||
|
||||
buildIso = inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit self inputs pkgs;
|
||||
};
|
||||
specialArgs = { inherit self inputs pkgs; };
|
||||
modules = [ ../iso/configuration.nix ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue