fix home.activation.checkLinkTargets
====================================== Problem ------- We resolve symlinks from inside `/nix/store/HASH-home-manager-files` into the nix store as `/nix/store/HASH-DRVNAME` which does not match the pattern. This happened to me because I pull in some repos in via `home.file`. The `home-manager-files` derivation links to the repo's derivation in the nix store. For example: let nanorcs = fetchFromGitHub { owner = "scopatz"; repo = "nanorc"; … }; in [ { target = ".nano"; source = nanorcs; } { target = ".nanorc"; source = "${nanorcs}/nanorc"; } ] Solution -------- Call `readlink` without `-e` to obtain only the first redirection from `~` to `/nix/store/HASH-home-manager-files`.
This commit is contained in:
parent
e274fc732b
commit
ec348e03e0
|
@ -260,7 +260,7 @@ in
|
|||
relativePath="''${sourcePath#$newGenFiles/}"
|
||||
targetPath="$HOME/$relativePath"
|
||||
if [[ -e "$targetPath" \
|
||||
&& ! "$(readlink -e "$targetPath")" =~ "${pattern}" ]] ; then
|
||||
&& ! "$(readlink "$targetPath")" =~ "${pattern}" ]] ; then
|
||||
errorEcho "Existing file '$targetPath' is in the way"
|
||||
collision=1
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue