files: show colliding files at bottom in checkLinkTargets

Prevents the actual file collision errors from being
truncated in the systemd log
This commit is contained in:
Lin Xianyi 2024-06-04 08:55:08 +08:00
parent 9b53a10f4c
commit b335cecd3e

View file

@ -34,26 +34,27 @@ for sourcePath in "$@" ; do
# Next, try to move the file to a backup location if configured and possible # Next, try to move the file to a backup location if configured and possible
backup="$targetPath.$HOME_MANAGER_BACKUP_EXT" backup="$targetPath.$HOME_MANAGER_BACKUP_EXT"
if [[ -e "$backup" ]]; then if [[ -e "$backup" ]]; then
errorEcho "Existing file '$backup' would be clobbered by backing up '$targetPath'" collisionErrors+=("Existing file '$backup' would be clobbered by backing up '$targetPath'")
collision=1
else else
warnEcho "Existing file '$targetPath' is in the way of '$sourcePath', will be moved to '$backup'" warnEcho "Existing file '$targetPath' is in the way of '$sourcePath', will be moved to '$backup'"
fi fi
else else
# Fail if nothing else works # Fail if nothing else works
errorEcho "Existing file '$targetPath' is in the way of '$sourcePath'" collisionErrors+=("Existing file '$backup' would be clobbered by backing up '$targetPath'")
collision=1
fi fi
fi fi
done done
if [[ -v collision ]] ; then if [[ ${#collisionErrors[@]} -gt 0 ]] ; then
errorEcho "Please do one of the following: errorEcho "Please do one of the following:
- Move or remove the above files and try again. - Move or remove the files below and try again.
- In standalone mode, use 'home-manager switch -b backup' to back up - In standalone mode, use 'home-manager switch -b backup' to back up
files automatically. files automatically.
- When used as a NixOS or nix-darwin module, set - When used as a NixOS or nix-darwin module, set
'home-manager.backupFileExtension' 'home-manager.backupFileExtension'
to, for example, 'backup' and rebuild." to, for example, 'backup' and rebuild."
for error in "${collisionErrors[@]}" ; do
errorEcho "$error"
done
exit 1 exit 1
fi fi