#!/bin/bash
# Install and configure Gitea Actions Runner
# Run as: sudo bash install-gitea-runner.sh

set -e

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

echo "========================================="
echo "Gitea Actions Runner Installation"
echo "========================================="
echo ""

# Check if running as root
if [ "$EUID" -ne 0 ]; then
    echo -e "${RED}ERROR: This script must be run as root (sudo)${NC}"
    exit 1
fi

# Variables
RUNNER_VERSION="0.2.11"
RUNNER_USER="gitea-runner"
RUNNER_HOME="/home/${RUNNER_USER}"
GITEA_URL="https://git.azcomputerguru.com"
RUNNER_NAME="gururmm-runner"

echo "Installing Gitea Actions Runner v${RUNNER_VERSION}"
echo "Target: ${GITEA_URL}"
echo ""

# Create runner user
if ! id "${RUNNER_USER}" &>/dev/null; then
    echo "Creating ${RUNNER_USER} user..."
    useradd -m -s /bin/bash "${RUNNER_USER}"
    echo -e "${GREEN}User created${NC}"
else
    echo -e "${YELLOW}User ${RUNNER_USER} already exists${NC}"
fi

# Download runner binary
echo "Downloading Gitea Actions Runner..."
cd /tmp
wget -q "https://dl.gitea.com/act_runner/${RUNNER_VERSION}/act_runner-${RUNNER_VERSION}-linux-amd64" -O act_runner

# Install binary
echo "Installing binary..."
chmod +x act_runner
mv act_runner /usr/local/bin/
chown root:root /usr/local/bin/act_runner

# Create runner directory
echo "Creating runner directory..."
mkdir -p "${RUNNER_HOME}/.runner"
chown -R "${RUNNER_USER}:${RUNNER_USER}" "${RUNNER_HOME}/.runner"

echo ""
echo "========================================="
echo "Runner Registration"
echo "========================================="
echo ""
echo "To complete setup, you need to register the runner with Gitea:"
echo ""
echo "1. Go to: ${GITEA_URL}/admin/actions/runners"
echo "2. Click 'Create new Runner'"
echo "3. Copy the registration token"
echo "4. Run as ${RUNNER_USER}:"
echo ""
echo "   sudo -u ${RUNNER_USER} act_runner register \\"
echo "     --instance ${GITEA_URL} \\"
echo "     --token YOUR_REGISTRATION_TOKEN \\"
echo "     --name ${RUNNER_NAME} \\"
echo "     --labels ubuntu-latest,ubuntu-22.04"
echo ""
echo "5. Then create systemd service:"
echo ""
cat > /etc/systemd/system/gitea-runner.service << 'EOF'
[Unit]
Description=Gitea Actions Runner
After=network.target

[Service]
Type=simple
User=gitea-runner
WorkingDirectory=/home/gitea-runner/.runner
ExecStart=/usr/local/bin/act_runner daemon
Restart=always
RestartSec=10
Environment="HOME=/home/gitea-runner"

[Install]
WantedBy=multi-user.target
EOF

echo "Systemd service created at /etc/systemd/system/gitea-runner.service"
echo ""
echo "After registration, enable and start the service:"
echo "  sudo systemctl daemon-reload"
echo "  sudo systemctl enable gitea-runner"
echo "  sudo systemctl start gitea-runner"
echo "  sudo systemctl status gitea-runner"
echo ""
echo "========================================="
echo "Installation Complete!"
echo "========================================="
echo ""
echo -e "${YELLOW}Next Steps:${NC}"
echo "1. Register the runner (see instructions above)"
echo "2. Start the systemd service"
echo "3. Verify runner shows up in Gitea Admin > Actions > Runners"
echo ""
