Files
Linux-Server-Management-Too…/run.sh
T
cschantz fc6c39231d Add wrapper script for automatic cleanup with zero manual steps
New workflow:
1. User runs: source run.sh (instead of bash launcher.sh)
2. Launcher runs normally
3. On exit with cleanup=yes, launcher sets flag file
4. Wrapper detects flag and does ALL cleanup automatically:
   - Cleans ~/.bash_history file
   - Clears current shell's in-memory history
   - Removes toolkit directory
   - No manual commands needed

The key: wrapper is SOURCED so it runs in parent shell and can modify history.

User experience: answer "yes" and cleanup happens instantly, automatically.
2025-11-11 18:22:10 -05:00

56 lines
1.6 KiB
Bash
Executable File

#!/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)"
# 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
bash "$SCRIPT_DIR/launcher.sh"
# 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