Mildly insane argument passing to modules

This commit is contained in:
Gerg-L 2024-06-12 23:05:45 -04:00
parent 5254992a3a
commit 03fe49b85a
Signed by: gerg-l
SSH key fingerprint: SHA256:FPYDHIkvMocr4wdmZXpgpJjsb2Tw6rASs2ISPbOb0KI
32 changed files with 134 additions and 164 deletions

View file

@ -1,5 +1,4 @@
{ _file }: { pkgs, config }:
{ pkgs, config, ... }:
{ {
programs.git = { programs.git = {
enable = true; enable = true;
@ -30,5 +29,4 @@
commit.gpgsign = true; commit.gpgsign = true;
}; };
}; };
inherit _file;
} }

View file

@ -1,10 +1,11 @@
{ {
nix-index-database, nix-index-database,
nvim-flake, nvim-flake,
self, self',
_file, pkgs,
config,
}: }:
{ pkgs, config, ... }:
{ {
local = { local = {
remoteBuild.isBuilder = true; remoteBuild.isBuilder = true;
@ -97,7 +98,7 @@
#qmk #qmk
; ;
inherit (nvim-flake.packages) neovim; inherit (nvim-flake.packages) neovim;
inherit (self.packages) lint; inherit (self'.packages) lint;
librewolf = pkgs.librewolf.override { cfg.speechSynthesisSupport = false; }; librewolf = pkgs.librewolf.override { cfg.speechSynthesisSupport = false; };
nixpkgs-review = pkgs.nixpkgs-review.override { nix = config.nix.package; }; nixpkgs-review = pkgs.nixpkgs-review.override { nix = config.nix.package; };
@ -194,5 +195,4 @@
}; };
system.stateVersion = "23.05"; system.stateVersion = "23.05";
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, pkgs }:
{ config, pkgs, ... }:
{ {
sops.secrets.cloudflare = { }; sops.secrets.cloudflare = { };
@ -84,5 +83,4 @@
func "nix-fu.com" "cc2df9163c3730f58b866409ac5a108c" func "nix-fu.com" "cc2df9163c3730f58b866409ac5a108c"
''; '';
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: #{ config }:
#{ config, ... }:
{ {
# users.users = { # users.users = {
# ${config.services.gitea.user} = { # ${config.services.gitea.user} = {
@ -30,5 +29,4 @@
createDatabase = true; createDatabase = true;
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file, self }: { self', lib }:
{ lib, ... }:
{ {
# I manually switch this sometimes # I manually switch this sometimes
config = lib.mkIf false { config = lib.mkIf false {
@ -35,7 +34,7 @@
"network.target" "network.target"
"minecraft-server.socket" "minecraft-server.socket"
]; ];
path = [ self.packages.papermc ]; path = [ self'.packages.papermc ];
script = '' script = ''
minecraft-server \ minecraft-server \
-Xms8G \ -Xms8G \
@ -100,5 +99,4 @@
''; '';
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,7 @@
{ _file }:
{ {
config, config,
lib, lib,
pkgs, pkgs,
...
}: }:
{ {
sops.secrets.minifluxenv = { }; sops.secrets.minifluxenv = { };
@ -97,5 +95,4 @@
${config.services.nginx.user}.extraGroups = [ "miniflux" ]; ${config.services.nginx.user}.extraGroups = [ "miniflux" ];
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { pkgs, config }:
{ pkgs, config, ... }:
{ {
sops.secrets.nextcloud.owner = "nextcloud"; sops.secrets.nextcloud.owner = "nextcloud";
@ -24,5 +23,4 @@
default_phone_region = "US"; default_phone_region = "US";
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, lib }:
{ config, lib, ... }:
{ {
sops.secrets = sops.secrets =
lib.genAttrs lib.genAttrs
@ -65,5 +64,4 @@
80 80
443 443
]; ];
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _file }:
{ {
pkgs, pkgs,
config, config,
lib, lib,
...
}: }:
{ {
sops.secrets.discordenv = { }; sops.secrets.discordenv = { };
@ -22,5 +21,4 @@
RestartSec = "30s"; RestartSec = "30s";
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, pkgs }:
{ config, pkgs, ... }:
{ {
services.postgresql = { services.postgresql = {
enable = true; enable = true;
@ -19,5 +18,4 @@
settings.unix_socket_permissions = "0770"; settings.unix_socket_permissions = "0770";
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, pkgs }:
{ config, pkgs, ... }:
{ {
sops.secrets.searxngenv = { }; sops.secrets.searxngenv = { };
users.users.${config.services.nginx.user}.extraGroups = [ "searx" ]; users.users.${config.services.nginx.user}.extraGroups = [ "searx" ];
@ -36,5 +35,4 @@
ui.theme_args.simple_style = "dark"; ui.theme_args.simple_style = "dark";
}; };
}; };
inherit _file;
} }

View file

@ -1,4 +1,4 @@
{ spicetify-nix, _file }: { spicetify-nix }:
let let
spicePkgs = spicetify-nix.legacyPackages; spicePkgs = spicetify-nix.legacyPackages;
in in
@ -37,5 +37,4 @@ in
misc = "282a36"; misc = "282a36";
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _dir, _file }:
{ {
_dir,
pkgs, pkgs,
lib, lib,
config,
...
}: }:
/* /*
This section is just me bullying This section is just me bullying
@ -187,5 +186,4 @@ in
); );
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,9 @@
{ lanzaboote, _file }:
{ {
lanzaboote,
config, config,
lib, lib,
pkgs, pkgs,
...
}: }:
{ {
imports = [ lanzaboote.nixosModules.lanzaboote ]; imports = [ lanzaboote.nixosModules.lanzaboote ];
@ -86,5 +86,4 @@
efi.efiSysMountPoint = "/efi"; efi.efiSysMountPoint = "/efi";
}; };
}; };
inherit _file;
} }

View file

@ -1,13 +1,10 @@
{ {
disko, disko,
nixos-generators, nixos-generators,
_file,
}:
{
lib, lib,
modulesPath, modulesPath,
pkgs, pkgs,
...
}: }:
{ {
##Build wtih nix build .#nixosConfigurations.iso.config.formats.iso ##Build wtih nix build .#nixosConfigurations.iso.config.formats.iso
@ -43,5 +40,4 @@
edition = lib.mkForce "gerg-minimal"; edition = lib.mkForce "gerg-minimal";
isoName = lib.mkForce "NixOS"; isoName = lib.mkForce "NixOS";
}; };
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _file }:
{ {
lib, lib,
pkgs, pkgs,
config, config,
...
}: }:
{ {
local = { local = {
@ -84,5 +83,4 @@
size = 8 * 1024; size = 8 * 1024;
} }
]; ];
inherit _file;
} }

View file

@ -43,11 +43,74 @@ rec {
(lib.removeSuffix ".nix") (lib.removeSuffix ".nix")
(lib.removePrefix "${path}/") (lib.removePrefix "${path}/")
]; ];
value = name; value = addSchizophreniaToModule name;
})) }))
builtins.listToAttrs builtins.listToAttrs
]; ];
addSchizophreniaToModule =
x:
let
imported = import x;
in
if !lib.isFunction imported then
x
else
let
allArgs = {
inherit inputs self;
_dir =
let
dir = builtins.dirOf x;
in
if (dir == builtins.storeDir) then null else dir;
};
funcArgs = lib.functionArgs imported;
argNames = builtins.attrNames inputs ++ [
"inputs"
"inputs'"
"self'"
"_dir"
];
providedArgs = lib.pipe funcArgs [
(lib.filterAttrs (n: _: builtins.elem n argNames))
(lib.mapAttrs (n: _: allArgs.${n} or { }))
];
neededArgs = (lib.filterAttrs (n: _: !builtins.elem n argNames) funcArgs);
in
{
__functor =
_: args:
imported (
(lib.filterAttrs (n: _: neededArgs ? ${n}) args)
# (formatter helping comment)
// (
providedArgs
// (
let
inputs' = constructInputs' (args.pkgs.stdenv.system) inputs;
actuallyAllArgs = inputs' // {
inherit inputs';
self' = inputs'.self;
};
in
lib.filterAttrs (n: _: providedArgs ? ${n}) actuallyAllArgs
)
)
)
// {
_file = x;
};
__functionArgs = neededArgs // {
pkgs = false;
};
};
gerg-utils = gerg-utils =
pkgsf: outputs: pkgsf: outputs:
lib.pipe lib.pipe
@ -73,56 +136,21 @@ rec {
lib.evalModules { lib.evalModules {
specialArgs.modulesPath = "${unstable}/nixos/modules"; specialArgs.modulesPath = "${unstable}/nixos/modules";
modules = modules = builtins.concatLists [
let (builtins.attrValues self.nixosModules)
importWithArgs = map ( (map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${hostName}"))
x: (import "${unstable}/nixos/modules/module-list.nix")
let (lib.singleton {
allArgs = (constructInputs' system inputs) // { networking = {
inherit inputs; inherit hostName;
_dir = };
let nixpkgs.hostPlatform = system;
dir = builtins.dirOf x; })
in (lib.optionals (self.diskoConfigurations ? "disko-${hostName}") [
if (dir != builtins.storeDir) then dir else null; self.diskoConfigurations."disko-${hostName}"
_file = x; disko.nixosModules.default
}; ])
imported = import x; ];
in
lib.pipe imported [
lib.functionArgs
builtins.attrNames
(map (
x:
if allArgs ? ${x} then
{
name = x;
value = allArgs.${x};
}
else
null
))
(builtins.filter builtins.isAttrs)
builtins.listToAttrs
imported
]
);
in
builtins.concatLists [
(importWithArgs (builtins.attrValues self.nixosModules))
(importWithArgs (listNixFilesRecursive "${self}/hosts/${hostName}"))
(import "${unstable}/nixos/modules/module-list.nix")
(lib.singleton {
networking = {
inherit hostName;
};
nixpkgs.hostPlatform = system;
})
(lib.optionals (self.diskoConfigurations ? "disko-${hostName}") [
self.diskoConfigurations."disko-${hostName}"
disko.nixosModules.default
])
];
} }
); );
mkDisko = wrench [ mkDisko = wrench [

View file

@ -1,13 +1,10 @@
{
suckless,
self,
_file,
}:
{ {
pkgs, pkgs,
config, config,
lib, lib,
... suckless,
self',
}: }:
{ {
options.local.DE.dwm.enable = lib.mkEnableOption ""; options.local.DE.dwm.enable = lib.mkEnableOption "";
@ -43,7 +40,7 @@
enable = true; enable = true;
displayManager = { displayManager = {
sessionCommands = '' sessionCommands = ''
feh --bg-center "${self.packages.images}/recursion.png" feh --bg-center "${self'.packages.images}/recursion.png"
numlockx numlockx
systemctl --user start sxhkd systemctl --user start sxhkd
systemctl --user start picom systemctl --user start picom
@ -125,5 +122,4 @@
}; };
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _file }:
{ {
config, config,
lib, lib,
pkgs, pkgs,
...
}: }:
{ {
options.local.DE.gnome.enable = lib.mkEnableOption ""; options.local.DE.gnome.enable = lib.mkEnableOption "";
@ -50,5 +49,4 @@
}; };
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _file }:
{ {
config, config,
lib, lib,
pkgs, pkgs,
...
}: }:
{ {
options.local.DE.xfce.enable = lib.mkEnableOption ""; options.local.DE.xfce.enable = lib.mkEnableOption "";
@ -21,5 +20,4 @@
displayManager.defaultSession = "xfce"; displayManager.defaultSession = "xfce";
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, lib }:
{ config, lib, ... }:
{ {
options.local.DM = { options.local.DM = {
autoLogin = lib.mkEnableOption ""; autoLogin = lib.mkEnableOption "";
@ -17,5 +16,4 @@
}; };
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,9 @@
{ self, _file }: {
{ config, lib, ... }: self',
config,
lib,
}:
{ {
options.local.DM.lightdm.enable = lib.mkEnableOption ""; options.local.DM.lightdm.enable = lib.mkEnableOption "";
@ -7,7 +11,7 @@
services.xserver.displayManager = { services.xserver.displayManager = {
lightdm = { lightdm = {
enable = true; enable = true;
background = "${self.packages.images}/recursion.png"; background = "${self'.packages.images}/recursion.png";
extraConfig = "minimum-vt=1"; extraConfig = "minimum-vt=1";
greeters.mini = { greeters.mini = {
enable = true; enable = true;
@ -41,5 +45,4 @@
}; };
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { pkgs, lib }:
{ pkgs, lib, ... }:
{ {
services.xserver = { services.xserver = {
tty = lib.mkDefault 1; tty = lib.mkDefault 1;
@ -9,5 +8,4 @@
excludePackages = [ pkgs.xterm ]; excludePackages = [ pkgs.xterm ];
desktopManager.xterm.enable = false; desktopManager.xterm.enable = false;
}; };
inherit _file;
} }

View file

@ -1,9 +1,9 @@
{ self, _file }:
{ {
self',
lib, lib,
pkgs, pkgs,
config, config,
...
}: }:
{ {
options.local.bootConfig.disable = lib.mkEnableOption ""; options.local.bootConfig.disable = lib.mkEnableOption "";
@ -34,7 +34,7 @@
plymouth = { plymouth = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
theme = "breeze"; theme = "breeze";
logo = "${self.packages.images}/logo.png"; logo = "${self'.packages.images}/logo.png";
}; };
loader = { loader = {
grub = { grub = {
@ -68,5 +68,4 @@
''; '';
}; };
}; };
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, lib }:
{ config, lib, ... }:
{ {
options.local.remoteBuild = { options.local.remoteBuild = {
enable = lib.mkEnableOption ""; enable = lib.mkEnableOption "";
@ -97,5 +96,4 @@
} }
) )
]; ];
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { config, lib }:
{ config, lib, ... }:
let let
cfg = config.local.hardware; cfg = config.local.hardware;
in in
@ -41,5 +40,4 @@ in
}; };
} }
]; ];
inherit _file;
} }

View file

@ -1,5 +1,4 @@
{ _file }: { lib }:
{ lib, ... }:
{ {
options.local.keys = lib.mkOption { }; options.local.keys = lib.mkOption { };
@ -12,5 +11,4 @@
gerg-desktop_fingerprint = "BQxvBOWsTw1gdNDR0KzrSRmbVhDrJdG05vYXkVmw8yA"; gerg-desktop_fingerprint = "BQxvBOWsTw1gdNDR0KzrSRmbVhDrJdG05vYXkVmw8yA";
gerg_gerg-desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJWbwkFJmRBgyWyWU+w3ksZ+KuFw9uXJN3PwqqE7Z/i8"; gerg_gerg-desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJWbwkFJmRBgyWyWU+w3ksZ+KuFw9uXJN3PwqqE7Z/i8";
}; };
inherit _file;
} }

View file

@ -1,9 +1,9 @@
{ _file, self }:
{ {
self',
lib, lib,
config, config,
pkgs, pkgs,
...
}: }:
{ {
options.local.allowedUnfree = lib.mkOption { options.local.allowedUnfree = lib.mkOption {
@ -33,7 +33,7 @@
nix-tree # view packages nix-tree # view packages
pciutils # lspci pciutils # lspci
; ;
inherit (self.packages) nix-janitor; inherit (self'.packages) nix-janitor;
} }
); );
@ -69,5 +69,4 @@
# Useless with flakes (without configuring) # Useless with flakes (without configuring)
programs.command-not-found.enable = false; programs.command-not-found.enable = false;
}; };
inherit _file;
} }

View file

@ -1,13 +1,11 @@
{ {
nix, nix,
inputs, inputs,
_file,
}:
{
lib, lib,
config, config,
pkgs, pkgs,
...
}: }:
{ {
# #
@ -73,5 +71,4 @@
# #
reject-flake-config = true; reject-flake-config = true;
}; };
inherit _file;
} }

View file

@ -1,9 +1,9 @@
{ fetch-rs, _file }:
{ {
fetch-rs,
pkgs, pkgs,
config, config,
lib, lib,
...
}: }:
{ {
systemd.tmpfiles.rules = [ "d /tmp/neovim-page 0777 root root - -" ]; systemd.tmpfiles.rules = [ "d /tmp/neovim-page 0777 root root - -" ];
@ -160,5 +160,4 @@
}; };
}; };
}; };
inherit _file;
} }

View file

@ -1,13 +1,10 @@
{
sops-nix,
self,
_file,
}:
{ {
pkgs, pkgs,
config, config,
lib, lib,
... sops-nix,
self',
}: }:
{ {
imports = [ sops-nix.nixosModules.sops ]; imports = [ sops-nix.nixosModules.sops ];
@ -15,9 +12,8 @@
config = lib.mkIf (!config.local.sops.disable) { config = lib.mkIf (!config.local.sops.disable) {
environment.systemPackages = [ pkgs.sops ]; environment.systemPackages = [ pkgs.sops ];
sops = { sops = {
defaultSopsFile = "${self}/hosts/${config.networking.hostName}/secrets.yaml"; defaultSopsFile = "${self'}/hosts/${config.networking.hostName}/secrets.yaml";
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
}; };
}; };
inherit _file;
} }

View file

@ -1,9 +1,8 @@
{ _file }:
{ {
pkgs, pkgs,
config, config,
lib, lib,
...
}: }:
let let
cfg = config.local.theming; cfg = config.local.theming;
@ -98,5 +97,4 @@ in
}; };
}) })
]; ];
inherit _file;
} }