Дай бог работать будет..
This commit is contained in:
125
install.sh
125
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 "=========================================="
|
||||
Reference in New Issue
Block a user