Honor ownership.
This commit is contained in:
parent
03e389195c
commit
6db8e01309
@ -81,7 +81,7 @@
|
||||
# me.install.user.file.talexander.".local/nixcfg" = ./README.org;
|
||||
me.install.user.talexander.file.".local/nixcfg" = {
|
||||
source = ./flake.lock;
|
||||
method = "overwrite";
|
||||
# method = "overwrite";
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [
|
||||
|
@ -12,12 +12,19 @@ let
|
||||
attrNames
|
||||
;
|
||||
|
||||
get_shell_values = target: rec {
|
||||
source = lib.strings.escapeShellArg "${target.source}";
|
||||
homedir = config.users.users."${target.username}".home;
|
||||
destination = lib.strings.escapeShellArg "${homedir}/${target.target}";
|
||||
mode = lib.strings.escapeShellArg "${target.mode}";
|
||||
};
|
||||
get_shell_values =
|
||||
target:
|
||||
let
|
||||
homedir = config.users.users."${target.username}".home;
|
||||
group = config.users.users."${target.username}".group;
|
||||
in
|
||||
{
|
||||
source = lib.strings.escapeShellArg "${target.source}";
|
||||
destination = lib.strings.escapeShellArg "${homedir}/${target.target}";
|
||||
mode = lib.strings.escapeShellArg "${target.mode}";
|
||||
username = lib.strings.escapeShellArg "${target.username}";
|
||||
group = lib.strings.escapeShellArg "${group}";
|
||||
};
|
||||
install_user_file =
|
||||
let
|
||||
constructors = {
|
||||
@ -35,10 +42,17 @@ let
|
||||
source
|
||||
destination
|
||||
mode
|
||||
username
|
||||
group
|
||||
;
|
||||
flags = lib.strings.concatStringsSep " " [
|
||||
(if mode != "" then "-m ${mode}" else "")
|
||||
(if username != "" then "-o ${username}" else "")
|
||||
(if group != "" then "-g ${group}" else "")
|
||||
];
|
||||
in
|
||||
''
|
||||
$DRY_RUN_CMD install $VERBOSE_ARG -D --compare -m ${mode} ${source} ${destination}
|
||||
$DRY_RUN_CMD install $VERBOSE_ARG -D --compare ${flags} ${source} ${destination}
|
||||
''
|
||||
);
|
||||
"uninstall" = (
|
||||
@ -61,10 +75,19 @@ let
|
||||
inherit (get_shell_values target)
|
||||
source
|
||||
destination
|
||||
username
|
||||
group
|
||||
;
|
||||
owner = lib.strings.concatStringsSep ":" (
|
||||
filter (val: val != "") [
|
||||
username
|
||||
group
|
||||
]
|
||||
);
|
||||
in
|
||||
''
|
||||
$DRY_RUN_CMD ln $VERBOSE_ARG -s ${source} ${destination}
|
||||
$DRY_RUN_CMD chown $VERBOSE_ARG -h ${owner} ${destination}
|
||||
''
|
||||
);
|
||||
"uninstall" = (
|
||||
|
Loading…
x
Reference in New Issue
Block a user