feat: dots group
This commit is contained in:
@@ -33,6 +33,7 @@ in {
|
|||||||
cmd = "${../../../../scripts/ediff/ediff} $LOCAL $REMOTE $MERGED";
|
cmd = "${../../../../scripts/ediff/ediff} $LOCAL $REMOTE $MERGED";
|
||||||
trustExitCode = true;
|
trustExitCode = true;
|
||||||
};
|
};
|
||||||
|
safe.directory = ["/persist/dots"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
34
modules/nixos/dots.nix
Normal file
34
modules/nixos/dots.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let cfg = config.sydnix.dots;
|
||||||
|
in {
|
||||||
|
options.sydnix.dots = {
|
||||||
|
enable = lib.mkEnableOption "management of the dotfiles directory" // {
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
directory = lib.mkOption {
|
||||||
|
default = "/persist/dots";
|
||||||
|
type = lib.types.path;
|
||||||
|
description = ''
|
||||||
|
Path to a checkout of the Sydnix repo. The environment variable
|
||||||
|
SYDNIX_PATH will be set to this.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.variables.SYDNIX_PATH = cfg.directory;
|
||||||
|
|
||||||
|
# Group that owns `cfg.directory`.
|
||||||
|
users.groups."dots" = {};
|
||||||
|
|
||||||
|
# Ensure correct permissions on `cfg.directory`.
|
||||||
|
systemd.tmpfiles.settings."50-dots" = {
|
||||||
|
${cfg.directory} = {
|
||||||
|
z.group = "dots";
|
||||||
|
z.user = "root";
|
||||||
|
z.mode = "2770";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -69,6 +69,7 @@ in {
|
|||||||
name = cfg.persistGroupName;
|
name = cfg.persistGroupName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# O_O what the fuck did i write this for.... CONCERNING.
|
||||||
systemd.tmpfiles.settings."10-varlibprivate" = {
|
systemd.tmpfiles.settings."10-varlibprivate" = {
|
||||||
"/var/lib/private" = {
|
"/var/lib/private" = {
|
||||||
z.group = "root";
|
z.group = "root";
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
# TODO: Don't hard-code `persist`. Use
|
# TODO: Don't hard-code `persist`. Use
|
||||||
# config.sydnix.impermanence.persistGroupName.
|
# config.sydnix.impermanence.persistGroupName.
|
||||||
extraGroups = [ "wheel" "persist" "input" "networkmanager" ];
|
extraGroups = [ "wheel" "persist" "input" "networkmanager" "dots" ];
|
||||||
initialHashedPassword =
|
initialHashedPassword =
|
||||||
"$y$j9T$aEFDDwdTZbAc6VQRXrkBJ0$K8wxTGTWDihyX1wxJ.ZMH//wmQFfrGGUkLkxIU0Lyq8";
|
"$y$j9T$aEFDDwdTZbAc6VQRXrkBJ0$K8wxTGTWDihyX1wxJ.ZMH//wmQFfrGGUkLkxIU0Lyq8";
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
# TODO: Don't hard-code `persist`. Use
|
# TODO: Don't hard-code `persist`. Use
|
||||||
# config.sydnix.impermanence.persistGroupName.
|
# config.sydnix.impermanence.persistGroupName.
|
||||||
extraGroups = [ "wheel" "persist" "input" ];
|
extraGroups = [ "wheel" "persist" "input" "dots" ];
|
||||||
initialHashedPassword =
|
initialHashedPassword =
|
||||||
"$y$j9T$4pyDiPlhnN4UarQoY7Sn70$URZQKPJ3yU4WoQFHRhzm4uF3bM4U7OVYem3oPioykMC";
|
"$y$j9T$4pyDiPlhnN4UarQoY7Sn70$URZQKPJ3yU4WoQFHRhzm4uF3bM4U7OVYem3oPioykMC";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user