refactor: complete overhaul

This commit is contained in:
Nick 2024-11-10 01:29:37 -06:00
parent fb3e6fed86
commit 0541b3d61f
154 changed files with 936 additions and 904 deletions

View file

@ -1,60 +1,24 @@
let
modulesPath = ./modules;
servicePath = modulesPath + "/services";
moduleImport = path: nameTransform:
builtins.listToAttrs (
map
(name: {
name = nameTransform name;
value = import (path + "/${name}");
})
(
builtins.filter
(name: (builtins.readDir path).${name} == "regular" && builtins.match ".*\\.nix$" name != null)
(builtins.attrNames (builtins.readDir path))
)
);
modules =
builtins.foldl' (
emptySet: importedModules:
emptySet // importedModules
) {} (map
(name: {
"${name}" = import (modulesPath + "/${name}");
})
[
"services"
])
// builtins.foldl' (
emptySet: importedModules:
emptySet // importedModules
) {} (map
(name: {
"${name}" = import (modulesPath + "/${name}.nix");
})
[
"accounts"
"android"
"audio"
"bluetooth"
"corectrl"
"dconf"
"disks"
"doas"
"environment"
"firejail"
"flatpak"
"fonts"
"gnome"
"greetd"
"gvfs"
"home-manager"
"locale"
"network"
"nix"
"nur"
"ollama"
"plasma"
"printing"
"regreet"
"rsyncd"
"sddm"
"sops"
"ssh"
"steam"
"syncthing"
"sysstat"
"system"
"virtualization"
"xserver"
]);
moduleImport modulesPath (name: builtins.replaceStrings [".nix"] [""] name)
// moduleImport servicePath (name: builtins.replaceStrings [".nix"] [""] name);
in {
flake.nixosModules = {
personal = {

View file

@ -1,4 +1,6 @@
{flake, ...}: {
{flake, ...}: let
inherit (flake.config.people) user0;
in {
security = {
doas = {
enable = true;
@ -6,7 +8,7 @@
{
keepEnv = true;
noPass = true;
users = [flake.config.people.user0];
users = [user0];
}
];
};

View file

@ -3,8 +3,7 @@
flake,
...
}: let
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.people.users.user0) email;
inherit (flake.config.services) instances;
domain0 = instances.web.domains.url0;

View file

@ -1,5 +1,5 @@
{flake, ...}: let
inherit (flake.config.machines.devices) nas phone tablet;
inherit (flake.config.machines.devices) synology phone tablet;
inherit (flake.config.services.instances) syncthing web;
service = syncthing;
localhost = web.localhost.address0;
@ -14,13 +14,13 @@ in {
guiAddress = "${localhost}:${toString service.ports.port0}";
settings = {
devices = {
${nas.name} = {
${synology.name} = {
autoAcceptFolders = true;
name = nas.name;
name = synology.name;
addresses = [
"tcp://${nas.ip.address0}:${toString service.ports.port2}"
"tcp://${synology.ip.address0}:${toString service.ports.port2}"
];
id = nas.sync;
id = synology.sync;
};
${phone.name} = {
autoAcceptFolders = true;