#!/bin/bash

################################################################################
# Wrapper script for Server Toolkit
################################################################################
# This wrapper allows proper history cleanup by running in the current shell
################################################################################

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Fix HISTFILE if set to non-existent path (prevents crashes on sourcing)
if [ -n "$HISTFILE" ]; then
    HISTFILE_DIR="$(dirname "$HISTFILE" 2>/dev/null)"
    if [ ! -d "$HISTFILE_DIR" ]; then
        # Fallback to default history location
        export HISTFILE="$HOME/.bash_history"
    fi
fi

# Check if being sourced or executed
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    echo "ERROR: This script must be sourced, not executed."
    echo ""
    echo "Run it like this:"
    echo "  source $0"
    echo ""
    echo "Or use the alias:"
    echo "  . $0"
    exit 1
fi

# Run the launcher (source in current shell, don't execute in subshell)
source "$SCRIPT_DIR/launcher.sh" || {
    echo "ERROR: Failed to load launcher.sh"
    return 1
}

# Check if cleanup is requested
if [ -f /tmp/.cleanup_requested ]; then
    rm -f /tmp/.cleanup_requested

    # Clean history in current shell
    GREP_PATTERN="git\.mull\.lol|linux-server-management-toolkit|server-toolkit|launcher\.sh|erase-toolkit-traces|run\.sh"

    if [ -f ~/.bash_history ]; then
        cp ~/.bash_history ~/.bash_history.bak.$$
        grep -Ev "$GREP_PATTERN" ~/.bash_history.bak.$$ > ~/.bash_history 2>/dev/null || true
        rm -f ~/.bash_history.bak.$$
    fi

    # Clear current shell's history
    history -c
    history -r ~/.bash_history
    unset HISTFILE
    set +o history

    # Remove toolkit directory
    cd /root 2>/dev/null
    rm -rf "$SCRIPT_DIR" 2>/dev/null

    clear
    echo ""
    echo "✓ All traces removed"
    echo ""
    echo "Type 'exit' and start a new shell."
    echo ""
fi
