From cd82b9669a714c140192acbcd0218b98cc6c955e Mon Sep 17 00:00:00 2001 From: Likaon Date: Wed, 27 May 2026 11:40:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B0=D0=B9=20=D0=B1=D0=BE=D0=B3=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D1=82=D1=8C=20=D0=B1=D1=83?= =?UTF-8?q?=D0=B4=D0=B5=D1=82..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 125 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 102 insertions(+), 23 deletions(-) diff --git a/install.sh b/install.sh index d652f9b..0131bac 100755 --- a/install.sh +++ b/install.sh @@ -1,58 +1,137 @@ #!/bin/bash +# install.sh - Установка Stego App +# Запуск: chmod +x install.sh && ./install.sh + set -e echo "==========================================" echo "Установка Stego App" echo "==========================================" -# 1. Установка pipx (если не установлен) -if ! command -v pipx &> /dev/null; then - echo "Установка pipx..." - sudo apt update - sudo apt install pipx -y - pipx ensurepath - source ~/.bashrc -fi +PROJECT_DIR="$(pwd)" +USER_BIN="$HOME/.local/bin" -echo "✓ pipx установлен" +# 1. Проверка Python +if ! command -v python3 &> /dev/null; then + echo "❌ Python 3 не найден" + echo "Установите Python 3.8+: sudo apt install python3 python3-pip python3-venv" + exit 1 +fi +echo "✓ Python найден: $(python3 --version)" # 2. Установка Tkinter (для GUI) if ! python3 -c "import tkinter" &> /dev/null; then echo "Установка Tkinter..." + sudo apt update sudo apt install python3-tk -y fi - echo "✓ Tkinter установлен" -# 3. Установка приложения через pipx -echo "Установка Stego App..." -pipx install --force . +# 3. Создание виртуального окружения +echo "Создание виртуального окружения..." +if [ -d ".venv" ]; then + echo "Виртуальное окружение уже существует, обновляем..." + rm -rf .venv +fi +python3 -m venv .venv +echo "✓ Виртуальное окружение создано" -echo "✓ Приложение установлено" +# 4. Установка зависимостей +echo "Установка зависимостей..." +source .venv/bin/activate +pip install --upgrade pip +pip install numpy pillow scipy +deactivate +echo "✓ Зависимости установлены" -# 4. Установка иконки +# 5. Создание запускаторов +echo "Создание запускаторов..." +mkdir -p "$USER_BIN" + +cat > "$USER_BIN/stego" << EOF +#!/bin/bash +cd "$PROJECT_DIR" +source .venv/bin/activate +python main.py "\$@" +EOF + +cat > "$USER_BIN/stego-gui" << EOF +#!/bin/bash +cd "$PROJECT_DIR" +source .venv/bin/activate +python main.py --gui +EOF + +chmod +x "$USER_BIN/stego" +chmod +x "$USER_BIN/stego-gui" +echo "✓ Запускаторы созданы: stego, stego-gui" + +# 6. Добавление ~/.local/bin в PATH (если нужно) +if [[ ":$PATH:" != *":$USER_BIN:"* ]]; then + echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc + echo "✓ PATH обновлён. Перезагрузите терминал или выполните: source ~/.bashrc" +fi + +# 7. Установка иконки echo "Установка иконки..." -sudo mkdir -p /usr/local/share/stego/icons -sudo cp icons/stego.png /usr/local/share/stego/icons/ +if [ -f "icons/stego.png" ]; then + sudo mkdir -p /usr/local/share/stego/icons + sudo cp icons/stego.png /usr/local/share/stego/icons/ + echo "✓ Иконка установлена" +else + echo "⚠️ Иконка не найдена: icons/stego.png" +fi -# 5. Установка .desktop файла +# 8. Установка .desktop файла (ярлык в меню) echo "Установка ярлыка в меню..." +mkdir -p ~/.local/share/applications cat > ~/.local/share/applications/stego.desktop << DESKTOP [Desktop Entry] Type=Application Name=Stego App Comment=Сокрытие данных в изображениях -Exec=stego-gui +Exec=$USER_BIN/stego-gui Icon=/usr/local/share/stego/icons/stego.png Terminal=false Categories=Graphics;Utility; +StartupNotify=true DESKTOP +# 9. Ярлык на рабочий стол (опционально) +read -p "Создать ярлык на рабочем столе? (y/n): " -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + cat > ~/Desktop/stego.desktop << DESKTOP +[Desktop Entry] +Type=Application +Name=Stego App +Comment=Сокрытие данных в изображениях +Exec=$USER_BIN/stego-gui +Icon=/usr/local/share/stego/icons/stego.png +Terminal=false +Categories=Graphics; +StartupNotify=true +DESKTOP + chmod +x ~/Desktop/stego.desktop + echo "✓ Ярлык создан на рабочем столе" +fi + +# Обновление базы приложений +update-desktop-database ~/.local/share/applications/ 2>/dev/null || true +update-desktop-database /usr/share/applications/ 2>/dev/null || true + +echo "" +echo "==========================================" +echo "✅ Установка завершена!" echo "==========================================" -echo "Установка завершена!" echo "" -echo "Запуск: stego-gui" -echo "Или: stego --help" +echo "Запуск GUI: stego-gui" +echo "CLI справка: stego --help" +echo "LSB кодирование: stego encode lsb image.png out.png -m \"Сообщение\"" +echo "LSB декодирование: stego decode lsb out.png" echo "" -echo "Ярлык появится в меню приложений" +echo "Ярлык появится в меню приложений (Graphics/Stego App)" +if [[ $REPLY =~ ^[Yy]$ ]]; then + echo "Ярлык также создан на рабочем столе" +fi echo "==========================================" \ No newline at end of file