Refactor user management in configuration files for enhanced consistency

Updated multiple configuration files to implement a unified approach for user management across applications and services. Introduced `mkEnabledWithUsers` to streamline user configuration, improving maintainability and flexibility in multi-user setups.
This commit is contained in:
Danilo Reyes
2026-01-16 13:47:17 -06:00
parent 6573392c3b
commit 5e96618d8a
5 changed files with 51 additions and 38 deletions

View File

@@ -4,31 +4,28 @@
pkgs,
...
}:
let
enableForDerek = {
enable = true;
users = "bearded_dragonn";
};
in
{
my = {
apps = {
art.enable = true;
art.users = "bearded_dragonn";
gaming.enable = true;
gaming.users = "bearded_dragonn";
multimedia.videoEditing.enable = true;
multimedia.videoEditing.users = "bearded_dragonn";
art = enableForDerek;
gaming = enableForDerek;
multimedia.videoEditing = enableForDerek;
};
dev = {
nix.enable = true;
nix.users = "bearded_dragonn";
python.enable = true;
python.users = "bearded_dragonn";
sh.enable = true;
sh.users = "bearded_dragonn";
nix = enableForDerek;
python = enableForDerek;
sh = enableForDerek;
};
shell = {
exercism.enable = true;
exercism.users = "bearded_dragonn";
tools.enable = true;
tools.users = "bearded_dragonn";
multimedia.enable = true;
multimedia.users = "bearded_dragonn";
exercism = enableForDerek;
tools = enableForDerek;
multimedia = enableForDerek;
};
};
sops.secrets = lib.mkIf config.my.secureHost {

View File

@@ -1,22 +1,27 @@
{ inputs }:
let
inherit (inputs.self.lib) mkEnabled mkEnabledWithProxy enableList;
inherit (inputs.self.lib)
mkEnabled
mkEnabledWithUsers
mkEnabledWithProxy
enableList
;
in
{
emacs.enable = true;
enableProxy = true;
websites.portfolio.enableProxy = true;
apps = enableList mkEnabled [
apps = enableList mkEnabledWithUsers [
"dictionaries"
];
services = enableList mkEnabled [
"network"
];
shell = enableList mkEnabled [
shell = enableList mkEnabledWithUsers [
"tools"
"multimedia"
];
dev = enableList mkEnabled [
dev = enableList mkEnabledWithUsers [
"nix"
"python"
"sh"

View File

@@ -1,6 +1,6 @@
{ config, inputs }:
let
inherit (inputs.self.lib) mkEnabled enableList;
inherit (inputs.self.lib) mkEnabled mkEnabledWithUsers enableList;
mkEnabledIp = inputs.self.lib.mkEnabledIp config.my.ips.wg-server;
in
{
@@ -10,7 +10,8 @@ in
enableProxy = true;
enableContainers = true;
apps.dictionaries.enable = true;
shell = enableList mkEnabled [
apps.dictionaries.users = "jawz";
shell = enableList mkEnabledWithUsers [
"tools"
"multimedia"
];
@@ -19,7 +20,7 @@ in
"nvidia"
"syncthing"
];
dev = enableList mkEnabled [
dev = enableList mkEnabledWithUsers [
"nix"
"python"
"sh"

View File

@@ -1,28 +1,31 @@
{ inputs }:
let
inherit (inputs.self.lib) mkEnabled enableList;
inherit (inputs.self.lib) mkEnabled mkEnabledWithUsers enableList;
in
{
stylix.enable = true;
emacs.enable = true;
enableContainers = true;
servers.drpp.enable = true;
apps = enableList mkEnabled [
apps =
(enableList mkEnabledWithUsers [
"art"
"dictionaries"
"gaming"
"switch"
"internet"
"multimedia"
"office"
"misc"
];
dev = enableList mkEnabled [
])
// {
switch.enable = true;
};
dev = enableList mkEnabledWithUsers [
"nix"
"python"
"sh"
];
shell = enableList mkEnabled [
shell = enableList mkEnabledWithUsers [
"exercism"
"multimedia"
"tools"

View File

@@ -175,6 +175,13 @@ in
inherit name;
value.enable = true;
};
mkEnabledWithUsers = name: {
inherit name;
value = {
enable = true;
users = "jawz";
};
};
mkEnabledWithProxy = name: {
inherit name;
value = {