From 6b42a0946826ca35bbf9b8ad97d938701e7d2c9d Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 9 Aug 2025 20:43:01 -0400 Subject: [PATCH] Make the paths relative to the user's home directory. --- .../util/install_files/default.nix | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/nix/configuration/util/install_files/default.nix b/nix/configuration/util/install_files/default.nix index ecdee39..2d730f4 100644 --- a/nix/configuration/util/install_files/default.nix +++ b/nix/configuration/util/install_files/default.nix @@ -21,28 +21,30 @@ let }; in stage: target: (constructors."${target.method}"."${stage}" target); - old_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 = { "check" = (target: ""); "install" = ( target: let source = lib.strings.escapeShellArg "${target.source}"; - destination = lib.strings.escapeShellArg "${target.target}"; + homedir = config.users.users."${target.username}".home; + destination = lib.strings.escapeShellArg "${homedir}/${target.target}"; mode = lib.strings.escapeShellArg "${target.mode}"; in '' $DRY_RUN_CMD install $VERBOSE_ARG -D --compare -m ${mode} ${source} ${destination} '' ); - "uninstall" = (target: ""); + "uninstall" = ( + target: + let + homedir = config.users.users."${target.username}".home; + destination = lib.strings.escapeShellArg "${homedir}/${target.target}"; + in + '' + $DRY_RUN_CMD echo rm -f ${destination} + '' + ); }; install_user_file_symlink = { "check" = (target: ""); @@ -50,13 +52,23 @@ let target: let source = lib.strings.escapeShellArg "${target.source}"; - destination = lib.strings.escapeShellArg "${target.target}"; + homedir = config.users.users."${target.username}".home; + destination = lib.strings.escapeShellArg "${homedir}/${target.target}"; in '' $DRY_RUN_CMD ln $VERBOSE_ARG -s ${source} ${destination} '' ); - "uninstall" = (target: ""); + "uninstall" = ( + target: + let + homedir = config.users.users."${target.username}".home; + destination = lib.strings.escapeShellArg "${homedir}/${target.target}"; + in + '' + $DRY_RUN_CMD echo rm -f ${destination} + '' + ); }; in {