#!/bin/bash set -e # ========================================== # Linux Parental Control Installer # ========================================== if [ "$EUID" -ne 0 ]; then echo "Please run with sudo:" echo " sudo ./install.sh" exit 1 fi INSTALL_DIR="$(cd "$(dirname "$0")" && pwd)" APP_NAME="Parental Control" DESKTOP_FILE="/usr/share/applications/parental-control.desktop" SERVICE_FILE="/etc/systemd/system/parental-control.service" echo echo "==========================================" echo " Linux Parental Control Installer" echo "==========================================" echo echo "Installing from:" echo " $INSTALL_DIR" echo # ------------------------------------------ # 1. System dependencies # ------------------------------------------ echo "[1/6] Installing system dependencies" pacman -S --needed --noconfirm \ python \ python-pip echo echo "System dependencies installed." # ------------------------------------------ # 2. Python virtual environment # ------------------------------------------ echo echo "[2/6] Creating Python virtual environment" if [ ! -d "$INSTALL_DIR/.venv" ]; then python -m venv "$INSTALL_DIR/.venv" else echo "Virtual environment already exists." fi echo echo "Virtual environment ready." # ------------------------------------------ # 3. Python dependencies # ------------------------------------------ echo echo "[3/6] Installing Python packages" "$INSTALL_DIR/.venv/bin/python" -m pip install \ --upgrade pip "$INSTALL_DIR/.venv/bin/python" -m pip install \ -r "$INSTALL_DIR/requirements.txt" echo echo "Python packages installed." # ------------------------------------------ # 4. Install systemd service # ------------------------------------------ echo echo "[4/6] Installing systemd service" sed \ "s|%INSTALL_DIR%|$INSTALL_DIR|g" \ "$INSTALL_DIR/parental-control.service" \ > "$SERVICE_FILE" chmod 644 "$SERVICE_FILE" systemctl daemon-reload systemctl enable parental-control.service systemctl restart parental-control.service echo echo "Systemd service installed and started." # ------------------------------------------ # 5. Install desktop application # ------------------------------------------ echo echo "[5/6] Installing application launcher" cat > "$DESKTOP_FILE" </dev/null 2>&1; then update-desktop-database /usr/share/applications else echo "update-desktop-database is not installed." echo "Skipping desktop database update." fi # ------------------------------------------ # Verify installation # ------------------------------------------ echo echo "==========================================" echo " Installation complete" echo "==========================================" echo echo "Application:" echo " $APP_NAME" echo echo "Launch it from your application menu." echo "On your system:" echo " Super + D" echo echo "Service:" echo " systemctl status parental-control" echo echo "=========================================="