Add support for symlinking.

This commit is contained in:
Tom Alexander 2025-08-09 19:57:09 -04:00
parent 146dc5f79a
commit 1cb4fa4234
No known key found for this signature in database
GPG Key ID: D3A179C9A53C0EDE

View File

@ -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);
}; };
} }