Fix bash history cleaning - move to end of script

Bash history cleaning was happening too early, causing script commands to be re-added to history.

Changes:
• Moved history cleaning to the very end of the script
• History is now cleaned after all other operations complete
• Prevents script commands from being re-added to history
• Clear in-memory history as final action

Now properly removes the last 50 bash history entries including all toolkit-related commands.
This commit is contained in:
cschantz
2025-11-10 22:46:00 -05:00
parent 1ab71ecdaf
commit 99ee58ca1e
+29 -24
View File
@@ -50,28 +50,8 @@ PATTERNS=(
"erase-toolkit-traces" "erase-toolkit-traces"
) )
# Clean bash history for root # Clean bash history for root (will be done at the end to avoid re-adding entries)
if [ -f ~/.bash_history ]; then CLEAN_HISTORY=true
echo "→ Cleaning root bash history..."
cp ~/.bash_history ~/.bash_history.bak
# Remove last 50 lines from history file (covers toolkit download/usage)
total_lines=$(wc -l < ~/.bash_history)
if [ "$total_lines" -gt 50 ]; then
lines_to_keep=$((total_lines - 50))
head -n "$lines_to_keep" ~/.bash_history > ~/.bash_history.tmp
mv ~/.bash_history.tmp ~/.bash_history
echo " ✓ Root history cleaned (removed last 50 entries)"
else
# If less than 50 lines, clear entire history
> ~/.bash_history
echo " ✓ Root history cleared (file had < 50 entries)"
fi
# Clear in-memory history as well
history -c
history -w
fi
# Skip user bash histories - only clean root # Skip user bash histories - only clean root
# (User histories are not touched to avoid affecting normal user operations) # (User histories are not touched to avoid affecting normal user operations)
@@ -160,7 +140,32 @@ else
echo "You can manually remove it later with: rm -rf $SCRIPT_DIR" echo "You can manually remove it later with: rm -rf $SCRIPT_DIR"
fi fi
# Final step: Clean bash history (done last to capture all script commands)
if [ "$CLEAN_HISTORY" = true ] && [ -f ~/.bash_history ]; then
echo "" echo ""
echo "Note: Active shell sessions may still have history in memory." echo "→ Final cleanup: Removing bash history..."
echo "Consider logging out and back in for complete cleanup."
# Remove last 50 lines from history file
total_lines=$(wc -l < ~/.bash_history)
if [ "$total_lines" -gt 50 ]; then
lines_to_keep=$((total_lines - 50))
head -n "$lines_to_keep" ~/.bash_history > ~/.bash_history.tmp
mv ~/.bash_history.tmp ~/.bash_history
echo " ✓ Removed last 50 history entries"
else
> ~/.bash_history
echo " ✓ Cleared entire history (had < 50 entries)"
fi
# Clear in-memory history and write clean file
history -c
history -w
echo ""
echo " ✓ Bash history cleaned"
fi
echo ""
echo "All traces removed. The trace eraser commands will also be"
echo "removed when you log out or start a new shell session."
echo "" echo ""