Дай бог работать будет..

This commit is contained in:
Likaon
2026-05-27 11:40:25 +03:00
parent 3b34b3e7ac
commit cd82b9669a

View File

@@ -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 "=========================================="