AspansQulyp/scripts/install-linux.sh
deni.reyton 54c484300f
Some checks failed
CI / windows (push) Waiting to run
CI / linux (push) Has been cancelled
Установка: ярлык в «Пуске», .desktop для Linux, иконка в exe
- scripts/install-windows.ps1: exe в %LOCALAPPDATA%\Programs\Qulyp + ярлык (-Desktop, -Uninstall)
- scripts/install-linux.sh: ~/.local/bin + .desktop + SVG-иконка (--uninstall)
- build.rs вшивает иконку и описание в exe через winresource
- Растр иконки вынесен в src/icon_pixels.rs (общий для окна и build.rs)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:45:39 +05:00

49 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env sh
# Установка Qulyp для текущего пользователя (без sudo):
# бинарник -> ~/.local/bin/qulyp
# ярлык -> ~/.local/share/applications/qulyp.desktop (виден в меню и поиске приложений)
# иконка -> ~/.local/share/icons/hicolor/scalable/apps/qulyp.svg
#
# sh scripts/install-linux.sh # установить / обновить
# sh scripts/install-linux.sh --uninstall # удалить (хранилища .qulyp не трогаются)
set -eu
root=$(cd "$(dirname "$0")/.." && pwd)
bin="$HOME/.local/bin"
apps="$HOME/.local/share/applications"
icons="$HOME/.local/share/icons/hicolor/scalable/apps"
if [ "${1:-}" = "--uninstall" ]; then
rm -f "$bin/qulyp" "$apps/qulyp.desktop" "$icons/qulyp.svg"
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database "$apps" || true
echo "Qulyp удалён. Файлы хранилищ (.qulyp) и настройки не тронуты."
exit 0
fi
echo "Сборка release…"
cargo build --release --manifest-path "$root/Cargo.toml"
mkdir -p "$bin" "$apps" "$icons"
install -m 755 "$root/target/release/qulyp" "$bin/qulyp"
install -m 644 "$root/assets/qulyp.svg" "$icons/qulyp.svg"
cat > "$apps/qulyp.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=Qulyp
GenericName=Менеджер паролей
Comment=Локальный менеджер паролей
Exec=$bin/qulyp %f
Icon=qulyp
Terminal=false
Categories=Utility;Security;
Keywords=password;passwords;keepass;пароль;пароли;
StartupWMClass=qulyp
EOF
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database "$apps" || true
command -v gtk-update-icon-cache >/dev/null 2>&1 && gtk-update-icon-cache -q "$HOME/.local/share/icons/hicolor" || true
echo "Готово: $bin/qulyp"
echo "Найти программу: меню приложений -> поиск «Qulyp»."