mirror of
https://github.com/tw93/Mole.git
synced 2026-03-22 17:55:08 +00:00
fix(purge): resolve trap conflict between purge.sh and project.sh
- Add guard flag in cleanup_monitor to prevent duplicate execution - Check for existing trap in project.sh before setting new one - Prevents crash when user presses Ctrl-C or scan process fails
This commit is contained in:
@@ -68,8 +68,13 @@ perform_purge() {
|
|||||||
local stats_dir="${XDG_CACHE_HOME:-$HOME/.cache}/mole"
|
local stats_dir="${XDG_CACHE_HOME:-$HOME/.cache}/mole"
|
||||||
local monitor_pid=""
|
local monitor_pid=""
|
||||||
|
|
||||||
# Cleanup function
|
# Cleanup function - use flag to prevent duplicate execution
|
||||||
|
_cleanup_done=false
|
||||||
cleanup_monitor() {
|
cleanup_monitor() {
|
||||||
|
# Prevent multiple cleanup executions from trap conflicts
|
||||||
|
[[ "$_cleanup_done" == "true" ]] && return
|
||||||
|
_cleanup_done=true
|
||||||
|
|
||||||
# Remove scanning file to stop monitor
|
# Remove scanning file to stop monitor
|
||||||
rm -f "$stats_dir/purge_scanning" 2> /dev/null || true
|
rm -f "$stats_dir/purge_scanning" 2> /dev/null || true
|
||||||
|
|
||||||
|
|||||||
@@ -786,7 +786,12 @@ clean_project_artifacts() {
|
|||||||
echo ""
|
echo ""
|
||||||
exit 130
|
exit 130
|
||||||
}
|
}
|
||||||
trap cleanup_scan INT TERM
|
# Set up signal handling only if not already set by parent script
|
||||||
|
# This prevents trap conflicts between purge.sh and project.sh
|
||||||
|
if [[ -z "${_MO_PURGE_TRAP_SET:-}" ]]; then
|
||||||
|
trap cleanup_scan INT TERM
|
||||||
|
export _MO_PURGE_TRAP_SET=1
|
||||||
|
fi
|
||||||
# Scanning is started from purge.sh with start_inline_spinner
|
# Scanning is started from purge.sh with start_inline_spinner
|
||||||
# Launch all scans in parallel
|
# Launch all scans in parallel
|
||||||
for path in "${PURGE_SEARCH_PATHS[@]}"; do
|
for path in "${PURGE_SEARCH_PATHS[@]}"; do
|
||||||
|
|||||||
Reference in New Issue
Block a user