Initial native Linux parental control application
This commit is contained in:
Executable
+155
@@ -0,0 +1,155 @@
|
||||
#!/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" <<EOF
|
||||
[Desktop Entry]
|
||||
Name=$APP_NAME
|
||||
Comment=Linux Parental Control Manager
|
||||
Exec=$INSTALL_DIR/.venv/bin/python -m desktop.main
|
||||
Path=$INSTALL_DIR
|
||||
Icon=preferences-system-parental-controls
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Settings;
|
||||
StartupNotify=true
|
||||
EOF
|
||||
|
||||
chmod 644 "$DESKTOP_FILE"
|
||||
|
||||
echo
|
||||
echo "Desktop launcher installed:"
|
||||
echo " $DESKTOP_FILE"
|
||||
|
||||
# ------------------------------------------
|
||||
# 6. Update desktop database
|
||||
# ------------------------------------------
|
||||
|
||||
echo
|
||||
echo "[6/6] Updating application database"
|
||||
|
||||
if command -v update-desktop-database >/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 "=========================================="
|
||||
Reference in New Issue
Block a user