#!/bin/sh

# Prevent running as root
if [ "$EUID" -eq 0 ]; then
  echo "This script must NOT be run as root or with sudo. Please run as a normal user."
  exit 1
fi

# Stage 1: Install dependencies
sudo apt-get update
sudo apt-get upgrade -y
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get install -y git cups zip unzip supervisor \
  php-cli php-zip php-curl php-xml php-mbstring \
  printer-driver-gutenprint

# Stage 2: Install Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

# Stage 3: Setup Composer global vendor bin directory
COMPOSER_BIN_DIR='export PATH="$PATH:$HOME/.config/composer/vendor/bin"'
grep -qxF "$COMPOSER_BIN_DIR" ~/.bashrc || echo "$COMPOSER_BIN_DIR" >> ~/.bashrc

# Stage 4: Configure CUPS server
sudo cupsctl --remote-admin --remote-any
sudo usermod -aG lpadmin "$USER"
sudo /etc/init.d/cups restart

# Stage 5: Install Print CLI application
composer global require anikeen/print-cli
print-cli init --no-interaction
print-cli init:supervisor | sudo tee /etc/supervisor/conf.d/print-cli.conf > /dev/null

# Stage 6: Start Supervisor service
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart print-cli
