1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-05 16:27:03 +00:00

applications: Drop store prefix to generalize

While the Nix store is almost always at `/nix/store`, we shouldn't
assume it to be. Checking only the trailing part of the link is less
exact but removes this bad assumption.

I also added a check for the symlink's contents when overwriting it to
more accurately check whether we own it and should replace it.
This commit is contained in:
toonn 2022-06-26 09:18:11 +02:00
parent fbe795f39d
commit ed1e73d01e
No known key found for this signature in database
GPG key ID: 44FF902A66DF4576

View file

@ -24,20 +24,21 @@ in
# Set up applications.
echo "setting up /Applications/Nix Apps..." >&2
ourLink () {
local link
link=$(readlink "$1")
[ -L "$1" ] && [ "''${link#*-}" = 'system-applications/Applications' ]
}
# Clean up for links created at the old location in HOME
if [ -L ~/Applications
-a $(readlink ~/Applications | grep --quiet
'/nix/store/.*-system-applications/Applications')
]
if ourLink ~/Applications; then
rm ~/Applications
elif [ -L '~/Applications/Nix Apps'
-a $(readlink '~/Applications/Nix Apps' | grep --quiet
'/nix/store/.*-system-applications/Applications')
]
rm '~/Applications/Nix Apps'
elif ourLink ~/Applications/'Nix Apps'; then
rm ~/Applications/'Nix Apps'
fi
if [ ! -e '/Applications/Nix Apps' -o -L '/Applications/Nix Apps' ]; then
if [ ! -e '/Applications/Nix Apps' ] \
|| ourLink '/Applications/Nix Apps'; then
ln -sfn ${cfg.build.applications}/Applications '/Applications/Nix Apps'
else
echo "warning: /Applications/Nix Apps is not owned by nix-darwin, skipping App linking..." >&2