Add support for symlinking.
This commit is contained in:
parent
146dc5f79a
commit
1cb4fa4234
@ -14,6 +14,14 @@ let
|
|||||||
;
|
;
|
||||||
|
|
||||||
install_user_file =
|
install_user_file =
|
||||||
|
let
|
||||||
|
constructors = {
|
||||||
|
"overwrite" = install_user_file_overwrite;
|
||||||
|
"symlink" = install_user_file_symlink;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
(target: (constructors."${target.method}" target));
|
||||||
|
install_user_file_overwrite =
|
||||||
target:
|
target:
|
||||||
let
|
let
|
||||||
source = lib.strings.escapeShellArg "${target.source}";
|
source = lib.strings.escapeShellArg "${target.source}";
|
||||||
@ -24,6 +32,16 @@ let
|
|||||||
''
|
''
|
||||||
$DRY_RUN_CMD install $VERBOSE_ARG -D --compare -m ${mode} ${source} ${destination}
|
$DRY_RUN_CMD install $VERBOSE_ARG -D --compare -m ${mode} ${source} ${destination}
|
||||||
'';
|
'';
|
||||||
|
install_user_file_symlink =
|
||||||
|
target:
|
||||||
|
let
|
||||||
|
source = lib.strings.escapeShellArg "${target.source}";
|
||||||
|
destination = lib.strings.escapeShellArg "${target.target}";
|
||||||
|
mode = lib.strings.escapeShellArg "${target.mode}";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
$DRY_RUN_CMD ln $VERBOSE_ARG -s ${source} ${destination}
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [ ];
|
imports = [ ];
|
||||||
@ -146,7 +164,6 @@ in
|
|||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# environment.etc."install_out".text = builtins.toJSON enabled_file_targets;
|
environment.etc."install_out".text = config.systemd.services.me-install-file.script;
|
||||||
environment.etc."install_out".text = (lib.strings.concatStringsSep "\n" install_commands);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user