#!/bin/bash

# This script is for starting utilits-post-install in manual mode

information() {
    echo " _______  ___          _______  _______  _______  __   __        ______    __   __ "
    echo "|       ||   |        |       ||       ||       ||  | |  |      |    _ |  |  | |  |"
    echo "|  _____||   |  ____  |_     _||    ___||       ||  |_|  |      |   | ||  |  | |  |"
    echo "| |_____ |   | |____|   |   |  |   |___ |       ||       |      |   |_||_ |  |_|  |"
    echo "|_____  ||   |          |   |  |    ___||      _||       | ___  |    __  ||       |"
    echo " _____| ||   |          |   |  |   |___ |     |_ |   _   ||   | |   |  | ||       |"
    echo "|_______||___|          |___|  |_______||_______||__| |__||___| |___|  |_||_______|"
    echo
    echo "Информация:"
    echo
    echo "> Автор: Si-Tech [https://git.si-tech.ru]"
    echo "> Лицензия: MIT"
    echo
    echo "Этот скрипт запускает утилиту post-install для выполнения сетевых настроек до загрузки основной системы."
    echo "Он также может активировать или деактивировать автоматический запуск при загрузке."
    echo "Для получения справки используйте опцию --help."
}

usage() {
    echo "Использование: $0 [опция]"
    echo
    echo "Опции:"
    echo "  --start    Запустить утилиту post-inst вручную"
    echo "  --enable   Активировать автоматический запуск при загрузке"
    echo "  --disable  Деактивировать автоматический запуск при загрузке"
    echo "  --help     Показать эту справку"
    echo
    echo "Примеры:"
    echo "  $0 --start    # Запустить утилиту сейчас"
    echo "  $0 --enable   # Включить автозапуск при загрузке"
    echo "  $0 --disable  # Выключить автозапуск при загрузке"
    exit 1
}

# Check for root privileges
if [ "$(id -u)" != "0" ]; then
    echo "Ошибка: Этот скрипт должен быть запущен с правами администратора!" >&2
    exit 1
fi

# Check if no arguments provided
if [ $# -eq 0 ]; then
    echo "Ошибка: Не указана ни одна опция" >&2
    usage
fi

# Process arguments
case "$1" in
    --start)
        echo "Запуск утилиты post-install вручную..."
        /usr/bin/python3 /opt/utilits-post-install/post-inst.py || { echo "Произошла ошибка при запуске утилиты post-install"; exit 1; }
        ;;
    --enable)
        echo "Активация автоматического запуска при загрузке..."
        sudo cp -a /opt/utilits-post-install/postinstall.service /lib/systemd/system/postinstall.service || { echo "postinstall.service отсутствует, переустановите пакет"; exit 1; }
        sudo cp -a /opt/utilits-post-install/postinstall.target /lib/systemd/system/postinstall.target || { echo "postinstall.target отсутствует, переустановите пакет"; exit 1; }
        sudo chmod 644 /lib/systemd/system/postinstall.service || { echo "postinstall.service отсутствует, переустановите пакет"; exit 1; }
        sudo chmod 644 /lib/systemd/system/postinstall.target || { echo "postinstall.target отсутствует, переустановите пакет"; exit 1; }
        sudo /bin/systemctl enable postinstall.service || { echo "postinstall.service отсутствует, переустановите пакет"; exit 1; }
        sudo /bin/systemctl enable postinstall.target || { echo "postinstall.target отсутствует, переустановите пакет"; exit 1; }
        sudo /bin/systemctl set-default postinstall.target || { echo "postinstall.target отсутствует, переустановите пакет"; exit 1; }
        echo "Активация utilits-post-install завершена, при следующей перезагрузке автоматически запустится настройка параметров"
        ;;
    --disable)
        echo "Деактивация автоматического запуска при загрузке..."
        sudo /bin/systemctl disable postinstall.service || { echo "postinstall.service отсутствует, переустановите пакет"; exit 1; }
        sudo /bin/systemctl disable postinstall.target || { echo "postinstall.target отсутствует, переустановите пакет"; exit 1; }
        sudo /bin/systemctl set-default graphical.target || { echo "Не удалось восстановить graphical.target по умолчанию"; exit 1; }
        echo "Деактивация utilits-post-install завершена, восстановлен стандартный graphical.target"
        ;;
    --help)
        usage
        ;;
    --info)
        information
        ;;
    *)
        echo "Ошибка: Неизвестная опция: $1" >&2
        usage
        ;;
esac

exit 0