fix(build): improve Linux install script reliability and idempotency

- Fix tilde expansion: replace quoted '~' paths with $HOME so they
  actually resolve to the user's home directory instead of being
  treated literally
- Add existence checks before copying files so the script is
  idempotent and skips already-installed resources
- Add progress/status echo messages for each installation step
  so the user can see what is being done
This commit is contained in:
2026-05-27 20:01:39 -04:00
parent b6bdee4df6
commit c54a11e7bd

View File

@@ -1,26 +1,39 @@
#!/bin/bash #!/bin/bash
# copy desktop file # copy desktop file
if [ -e "~/.local/share/applications/AniTrack.desktop" ]; then if [ ! -f "$HOME/.local/share/applications/AniTrack.desktop" ]; then
if [ -d "~/.local/share/applications/" ]; then if [ -d "~/.local/share/applications/" ]; then
echo "Copying desktop file..."
cp ./AniTrack.desktop ~/.local/share/applications/ cp ./AniTrack.desktop ~/.local/share/applications/
else else
mkdir -p ~/.local/share/applications/ mkdir -p ~/.local/share/applications/
echo "Copying desktop file..."
cp ./AniTrack.desktop ~/.local/share/applications/ cp ./AniTrack.desktop ~/.local/share/applications/
fi fi
else
echo "Desktop file already installed..."
fi fi
# copy icons to xdg folders # copy icons to xdg folders
for size in 32 48 64 128; do for size in 32 48 64 128; do
if [ ! -f $HOME/.local/share/icons/hicolor/${size}x${size}/apps/AniTrack.png ]; then
echo "Installing ${size} icon size..."
xdg-icon-resource install --novendor --context apps --size $size ./icon/$size/AniTrack.png AniTrack xdg-icon-resource install --novendor --context apps --size $size ./icon/$size/AniTrack.png AniTrack
else
echo "${size} icon size already exists..."
fi
done done
# copy AniTrack Binary to $HOME/Applications/ # copy AniTrack Binary to $HOME/Applications/
if ! [ -d "~/Applications" ]; then if ! [ -d "$HOME/Applications" ]; then
mkdir -p ~/Applications mkdir -p ~/Applications
echo "Installing app to ~/Applications..."
cp ./bin/AniTrack ~/Applications/ cp ./bin/AniTrack ~/Applications/
elif ! [[ -e ~/Applications/AniTrack ]]; then elif ! [[ -e $HOME/Applications/AniTrack ]]; then
echo "Installing app to ~/Applications"
cp ./bin/AniTrack ~/Applications/ cp ./bin/AniTrack ~/Applications/
else
echo "AniTrack already in Applications..."
fi fi
echo "AniTrack has been successfully installed." echo "AniTrack has been successfully installed."