1
0
mirror of https://github.com/tw93/Mole.git synced 2026-03-22 23:05:08 +00:00

fix: remove redundant pipefail blocks and fix arithmetic bug

This commit addresses the issue #506 where mole would exit prematurely
during application support scanning.

Changes:
1. Remove 4 redundant pipefail disable/restore blocks:
   - safe_find_delete() in lib/core/file_ops.sh
   - safe_sudo_find_delete() in lib/core/file_ops.sh
   - fix_broken_preferences() in lib/optimize/maintenance.sh
   - opt_saved_state_cleanup() in lib/optimize/tasks.sh

   These were unnecessary because process substitution (< <(cmd)) is not
   affected by pipefail - only real pipelines (cmd1 | cmd2) are.

2. Fix real bug in fix_broken_preferences():
   - Add || true to ((broken_count++)) on lines 35 and 55
   - This prevents set -e from exiting when broken_count starts at 0

Fixes #506
This commit is contained in:
Tw93
2026-02-27 23:44:10 +08:00
parent a8065dfbae
commit c129591cf4
3 changed files with 2 additions and 50 deletions

View File

@@ -11,13 +11,6 @@ fix_broken_preferences() {
local broken_count=0
# Temporarily disable pipefail to prevent process substitution failures from interrupting
local pipefail_was_set=false
if [[ -o pipefail ]]; then
pipefail_was_set=true
set +o pipefail
fi
while IFS= read -r plist_file; do
[[ -f "$plist_file" ]] || continue
@@ -32,7 +25,7 @@ fix_broken_preferences() {
plutil -lint "$plist_file" > /dev/null 2>&1 && continue
safe_remove "$plist_file" true > /dev/null 2>&1 || true
((broken_count++))
((broken_count++)) || true
done < <(command find "$prefs_dir" -maxdepth 1 -name "*.plist" -type f 2> /dev/null || true)
# Check ByHost preferences.
@@ -52,14 +45,9 @@ fix_broken_preferences() {
plutil -lint "$plist_file" > /dev/null 2>&1 && continue
safe_remove "$plist_file" true > /dev/null 2>&1 || true
((broken_count++))
((broken_count++)) || true
done < <(command find "$byhost_dir" -name "*.plist" -type f 2> /dev/null || true)
fi
# Restore pipefail if it was previously set
if [[ "$pipefail_was_set" == "true" ]]; then
set -o pipefail
fi
echo "$broken_count"
}