mirror of
https://github.com/Gerg-L/nixos.git
synced 2025-12-10 00:43:56 -05:00
Mildly insane argument passing to modules
This commit is contained in:
parent
5254992a3a
commit
03fe49b85a
32 changed files with 134 additions and 164 deletions
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, config }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
|
@ -30,5 +29,4 @@
|
|||
commit.gpgsign = true;
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
{
|
||||
|
||||
nix-index-database,
|
||||
nvim-flake,
|
||||
self,
|
||||
_file,
|
||||
self',
|
||||
pkgs,
|
||||
config,
|
||||
}:
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
local = {
|
||||
remoteBuild.isBuilder = true;
|
||||
|
|
@ -97,7 +98,7 @@
|
|||
#qmk
|
||||
;
|
||||
inherit (nvim-flake.packages) neovim;
|
||||
inherit (self.packages) lint;
|
||||
inherit (self'.packages) lint;
|
||||
|
||||
librewolf = pkgs.librewolf.override { cfg.speechSynthesisSupport = false; };
|
||||
nixpkgs-review = pkgs.nixpkgs-review.override { nix = config.nix.package; };
|
||||
|
|
@ -194,5 +195,4 @@
|
|||
};
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs }:
|
||||
{
|
||||
sops.secrets.cloudflare = { };
|
||||
|
||||
|
|
@ -84,5 +83,4 @@
|
|||
func "nix-fu.com" "cc2df9163c3730f58b866409ac5a108c"
|
||||
'';
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
#{ config, ... }:
|
||||
#{ config }:
|
||||
{
|
||||
# users.users = {
|
||||
# ${config.services.gitea.user} = {
|
||||
|
|
@ -30,5 +29,4 @@
|
|||
createDatabase = true;
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file, self }:
|
||||
{ lib, ... }:
|
||||
{ self', lib }:
|
||||
{
|
||||
# I manually switch this sometimes
|
||||
config = lib.mkIf false {
|
||||
|
|
@ -35,7 +34,7 @@
|
|||
"network.target"
|
||||
"minecraft-server.socket"
|
||||
];
|
||||
path = [ self.packages.papermc ];
|
||||
path = [ self'.packages.papermc ];
|
||||
script = ''
|
||||
minecraft-server \
|
||||
-Xms8G \
|
||||
|
|
@ -100,5 +99,4 @@
|
|||
'';
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
{ _file }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets.minifluxenv = { };
|
||||
|
|
@ -97,5 +95,4 @@
|
|||
${config.services.nginx.user}.extraGroups = [ "miniflux" ];
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, config }:
|
||||
{
|
||||
sops.secrets.nextcloud.owner = "nextcloud";
|
||||
|
||||
|
|
@ -24,5 +23,4 @@
|
|||
default_phone_region = "US";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, lib, ... }:
|
||||
{ config, lib }:
|
||||
{
|
||||
sops.secrets =
|
||||
lib.genAttrs
|
||||
|
|
@ -65,5 +64,4 @@
|
|||
80
|
||||
443
|
||||
];
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _file }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
sops.secrets.discordenv = { };
|
||||
|
|
@ -22,5 +21,4 @@
|
|||
RestartSec = "30s";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs }:
|
||||
{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
|
|
@ -19,5 +18,4 @@
|
|||
|
||||
settings.unix_socket_permissions = "0770";
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs }:
|
||||
{
|
||||
sops.secrets.searxngenv = { };
|
||||
users.users.${config.services.nginx.user}.extraGroups = [ "searx" ];
|
||||
|
|
@ -36,5 +35,4 @@
|
|||
ui.theme_args.simple_style = "dark";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ spicetify-nix, _file }:
|
||||
{ spicetify-nix }:
|
||||
let
|
||||
spicePkgs = spicetify-nix.legacyPackages;
|
||||
in
|
||||
|
|
@ -37,5 +37,4 @@ in
|
|||
misc = "282a36";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _dir, _file }:
|
||||
{
|
||||
_dir,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
|
||||
}:
|
||||
/*
|
||||
This section is just me bullying
|
||||
|
|
@ -187,5 +186,4 @@ in
|
|||
);
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{ lanzaboote, _file }:
|
||||
{
|
||||
lanzaboote,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
imports = [ lanzaboote.nixosModules.lanzaboote ];
|
||||
|
|
@ -86,5 +86,4 @@
|
|||
efi.efiSysMountPoint = "/efi";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
{
|
||||
disko,
|
||||
nixos-generators,
|
||||
_file,
|
||||
}:
|
||||
{
|
||||
lib,
|
||||
modulesPath,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
##Build wtih nix build .#nixosConfigurations.iso.config.formats.iso
|
||||
|
|
@ -43,5 +40,4 @@
|
|||
edition = lib.mkForce "gerg-minimal";
|
||||
isoName = lib.mkForce "NixOS";
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _file }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
local = {
|
||||
|
|
@ -84,5 +83,4 @@
|
|||
size = 8 * 1024;
|
||||
}
|
||||
];
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
106
lib/default.nix
106
lib/default.nix
|
|
@ -43,11 +43,74 @@ rec {
|
|||
(lib.removeSuffix ".nix")
|
||||
(lib.removePrefix "${path}/")
|
||||
];
|
||||
value = name;
|
||||
value = addSchizophreniaToModule name;
|
||||
}))
|
||||
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 =
|
||||
pkgsf: outputs:
|
||||
lib.pipe
|
||||
|
|
@ -73,44 +136,9 @@ rec {
|
|||
lib.evalModules {
|
||||
specialArgs.modulesPath = "${unstable}/nixos/modules";
|
||||
|
||||
modules =
|
||||
let
|
||||
importWithArgs = map (
|
||||
x:
|
||||
let
|
||||
allArgs = (constructInputs' system inputs) // {
|
||||
inherit inputs;
|
||||
_dir =
|
||||
let
|
||||
dir = builtins.dirOf x;
|
||||
in
|
||||
if (dir != builtins.storeDir) then dir else null;
|
||||
_file = x;
|
||||
};
|
||||
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}"))
|
||||
modules = builtins.concatLists [
|
||||
(builtins.attrValues self.nixosModules)
|
||||
(map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${hostName}"))
|
||||
(import "${unstable}/nixos/modules/module-list.nix")
|
||||
(lib.singleton {
|
||||
networking = {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
{
|
||||
suckless,
|
||||
self,
|
||||
_file,
|
||||
}:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
suckless,
|
||||
self',
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.DE.dwm.enable = lib.mkEnableOption "";
|
||||
|
|
@ -43,7 +40,7 @@
|
|||
enable = true;
|
||||
displayManager = {
|
||||
sessionCommands = ''
|
||||
feh --bg-center "${self.packages.images}/recursion.png"
|
||||
feh --bg-center "${self'.packages.images}/recursion.png"
|
||||
numlockx
|
||||
systemctl --user start sxhkd
|
||||
systemctl --user start picom
|
||||
|
|
@ -125,5 +122,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _file }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.DE.gnome.enable = lib.mkEnableOption "";
|
||||
|
|
@ -50,5 +49,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _file }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.DE.xfce.enable = lib.mkEnableOption "";
|
||||
|
|
@ -21,5 +20,4 @@
|
|||
displayManager.defaultSession = "xfce";
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, lib, ... }:
|
||||
{ config, lib }:
|
||||
{
|
||||
options.local.DM = {
|
||||
autoLogin = lib.mkEnableOption "";
|
||||
|
|
@ -17,5 +16,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ self, _file }:
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
self',
|
||||
config,
|
||||
lib,
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.DM.lightdm.enable = lib.mkEnableOption "";
|
||||
|
||||
|
|
@ -7,7 +11,7 @@
|
|||
services.xserver.displayManager = {
|
||||
lightdm = {
|
||||
enable = true;
|
||||
background = "${self.packages.images}/recursion.png";
|
||||
background = "${self'.packages.images}/recursion.png";
|
||||
extraConfig = "minimum-vt=1";
|
||||
greeters.mini = {
|
||||
enable = true;
|
||||
|
|
@ -41,5 +45,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ pkgs, lib, ... }:
|
||||
{ pkgs, lib }:
|
||||
{
|
||||
services.xserver = {
|
||||
tty = lib.mkDefault 1;
|
||||
|
|
@ -9,5 +8,4 @@
|
|||
excludePackages = [ pkgs.xterm ];
|
||||
desktopManager.xterm.enable = false;
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{ self, _file }:
|
||||
{
|
||||
self',
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.bootConfig.disable = lib.mkEnableOption "";
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
plymouth = {
|
||||
enable = lib.mkDefault true;
|
||||
theme = "breeze";
|
||||
logo = "${self.packages.images}/logo.png";
|
||||
logo = "${self'.packages.images}/logo.png";
|
||||
};
|
||||
loader = {
|
||||
grub = {
|
||||
|
|
@ -68,5 +68,4 @@
|
|||
'';
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, lib, ... }:
|
||||
{ config, lib }:
|
||||
{
|
||||
options.local.remoteBuild = {
|
||||
enable = lib.mkEnableOption "";
|
||||
|
|
@ -97,5 +96,4 @@
|
|||
}
|
||||
)
|
||||
];
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ config, lib, ... }:
|
||||
{ config, lib }:
|
||||
let
|
||||
cfg = config.local.hardware;
|
||||
in
|
||||
|
|
@ -41,5 +40,4 @@ in
|
|||
};
|
||||
}
|
||||
];
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ _file }:
|
||||
{ lib, ... }:
|
||||
{ lib }:
|
||||
{
|
||||
options.local.keys = lib.mkOption { };
|
||||
|
||||
|
|
@ -12,5 +11,4 @@
|
|||
gerg-desktop_fingerprint = "BQxvBOWsTw1gdNDR0KzrSRmbVhDrJdG05vYXkVmw8yA";
|
||||
gerg_gerg-desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJWbwkFJmRBgyWyWU+w3ksZ+KuFw9uXJN3PwqqE7Z/i8";
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{ _file, self }:
|
||||
{
|
||||
self',
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
options.local.allowedUnfree = lib.mkOption {
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
nix-tree # view packages
|
||||
pciutils # lspci
|
||||
;
|
||||
inherit (self.packages) nix-janitor;
|
||||
inherit (self'.packages) nix-janitor;
|
||||
}
|
||||
);
|
||||
|
||||
|
|
@ -69,5 +69,4 @@
|
|||
# Useless with flakes (without configuring)
|
||||
programs.command-not-found.enable = false;
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
{
|
||||
|
||||
nix,
|
||||
inputs,
|
||||
_file,
|
||||
}:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
#
|
||||
|
|
@ -73,5 +71,4 @@
|
|||
#
|
||||
reject-flake-config = true;
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{ fetch-rs, _file }:
|
||||
{
|
||||
fetch-rs,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
|
||||
}:
|
||||
{
|
||||
systemd.tmpfiles.rules = [ "d /tmp/neovim-page 0777 root root - -" ];
|
||||
|
|
@ -160,5 +160,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
{
|
||||
sops-nix,
|
||||
self,
|
||||
_file,
|
||||
}:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
sops-nix,
|
||||
self',
|
||||
|
||||
}:
|
||||
{
|
||||
imports = [ sops-nix.nixosModules.sops ];
|
||||
|
|
@ -15,9 +12,8 @@
|
|||
config = lib.mkIf (!config.local.sops.disable) {
|
||||
environment.systemPackages = [ pkgs.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" ];
|
||||
};
|
||||
};
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ _file }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
|
||||
}:
|
||||
let
|
||||
cfg = config.local.theming;
|
||||
|
|
@ -98,5 +97,4 @@ in
|
|||
};
|
||||
})
|
||||
];
|
||||
inherit _file;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue