41
flake.nix
41
flake.nix
@@ -31,12 +31,21 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {flake-parts, ...}:
|
outputs = inputs @ {flake-parts, ...}:
|
||||||
|
let
|
||||||
|
loadOverlays = path: with builtins;
|
||||||
|
map (n: import (path + ("/" + n)))
|
||||||
|
(filter (n: match ".*\\.nix" n != null)
|
||||||
|
(attrNames (readDir path)));
|
||||||
|
in
|
||||||
flake-parts.lib.mkFlake {inherit inputs;} (
|
flake-parts.lib.mkFlake {inherit inputs;} (
|
||||||
let
|
let
|
||||||
constants = import ./lib/constants.nix;
|
constants = import ./lib/constants.nix;
|
||||||
user = constants.user;
|
user = constants.user;
|
||||||
darwinHosts = builtins.attrNames (builtins.readDir ./hosts/darwin);
|
darwinHosts = builtins.attrNames (builtins.readDir ./hosts/darwin);
|
||||||
nixosHosts = builtins.attrNames (builtins.readDir ./hosts/nixos);
|
nixosHosts = builtins.attrNames (builtins.readDir ./hosts/nixos);
|
||||||
|
|
||||||
|
commonOverlays = loadOverlays ./overlays;
|
||||||
|
darwinOverlays = loadOverlays ./overlays/darwin;
|
||||||
in {
|
in {
|
||||||
systems = [
|
systems = [
|
||||||
"x86_64-linux"
|
"x86_64-linux"
|
||||||
@@ -45,11 +54,10 @@
|
|||||||
|
|
||||||
flake.darwinConfigurations = inputs.nixpkgs.lib.genAttrs darwinHosts (
|
flake.darwinConfigurations = inputs.nixpkgs.lib.genAttrs darwinHosts (
|
||||||
hostname: let
|
hostname: let
|
||||||
syncthingOverlay = import ./overlays/syncthing-darwin.nix;
|
syncthingOverlay = builtins.filter (o: o ? darwinSyncthingModule) darwinOverlays;
|
||||||
syncthingModule = (syncthingOverlay null {}).darwinSyncthingModule;
|
darwinModules = if syncthingOverlay != []
|
||||||
zjstatusOverlay = final: prev: {
|
then [((builtins.head syncthingOverlay) null {}).darwinSyncthingModule]
|
||||||
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
else [];
|
||||||
};
|
|
||||||
in
|
in
|
||||||
inputs.darwin.lib.darwinSystem {
|
inputs.darwin.lib.darwinSystem {
|
||||||
system = "aarch64-darwin";
|
system = "aarch64-darwin";
|
||||||
@@ -61,10 +69,15 @@
|
|||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.darwinModules.home-manager
|
inputs.home-manager.darwinModules.home-manager
|
||||||
inputs.nix-homebrew.darwinModules.nix-homebrew
|
inputs.nix-homebrew.darwinModules.nix-homebrew
|
||||||
syncthingModule
|
]
|
||||||
|
++ darwinModules
|
||||||
|
++ [
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [syncthingOverlay zjstatusOverlay];
|
nixpkgs.overlays = commonOverlays ++ darwinOverlays ++ [
|
||||||
|
(final: prev: {
|
||||||
|
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nix-homebrew = {
|
nix-homebrew = {
|
||||||
inherit user;
|
inherit user;
|
||||||
@@ -83,11 +96,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
flake.nixosConfigurations = inputs.nixpkgs.lib.genAttrs nixosHosts (
|
flake.nixosConfigurations = inputs.nixpkgs.lib.genAttrs nixosHosts (
|
||||||
hostname: let
|
hostname:
|
||||||
zjstatusOverlay = final: prev: {
|
|
||||||
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
inputs.nixpkgs.lib.nixosSystem {
|
inputs.nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs =
|
specialArgs =
|
||||||
@@ -98,7 +107,11 @@
|
|||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [zjstatusOverlay];
|
nixpkgs.overlays = commonOverlays ++ [
|
||||||
|
(final: prev: {
|
||||||
|
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
./hosts/nixos/${hostname}
|
./hosts/nixos/${hostname}
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user