#!/bin/bash
set -e

# JOBLET_HOME defines the installation directory (default: /opt/joblet)
JOBLET_HOME="${JOBLET_HOME:-/opt/joblet}"

case "$1" in
    remove)
        # Clean up cgroup directories
        if [ -d "/sys/fs/cgroup/joblet.slice" ]; then
            find /sys/fs/cgroup/joblet.slice -name "job-*" -type d -exec rmdir {} \; 2>/dev/null || true
        fi

        # Remove systemd log directory
        rm -rf /var/log/joblet

        # Remove symlinks
        rm -f /usr/bin/joblet
        rm -f /usr/bin/rnx

        # Note: Job logs in ${JOBLET_HOME}/logs are preserved
        # Use 'apt purge joblet' to remove all data including job logs
        if [ -d "${JOBLET_HOME}/logs" ] && [ "$(ls -A ${JOBLET_HOME}/logs 2>/dev/null)" ]; then
            echo "Note: Job logs preserved in ${JOBLET_HOME}/logs"
            echo "Use 'apt purge joblet' to remove all data"
        fi

        echo "Joblet service removed successfully!"
        ;;

    purge)
        # Remove user and all data on purge
        if id joblet >/dev/null 2>&1; then
            userdel joblet 2>/dev/null || true
        fi

        # Count log files before removal
        LOG_COUNT=0
        if [ -d "${JOBLET_HOME}/logs" ]; then
            LOG_COUNT=$(find ${JOBLET_HOME}/logs -name "*.log" -type f 2>/dev/null | wc -l)
        fi

        # Remove all joblet files including job logs, volumes, and configuration
        rm -rf ${JOBLET_HOME}
        rm -rf /var/log/joblet

        # Remove symlinks
        rm -f /usr/bin/joblet
        rm -f /usr/bin/rnx

        if [ "$LOG_COUNT" -gt 0 ]; then
            echo "Removed $LOG_COUNT job log files"
        fi
        echo "Joblet service purged successfully!"
        ;;
esac

exit 0
