1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-11 00:09:15 +00:00

Performance and speed optimization

This commit is contained in:
Tw93
2025-12-08 15:34:51 +08:00
parent ea8488c1bb
commit 78e6743666
13 changed files with 366 additions and 552 deletions

View File

@@ -37,7 +37,7 @@ fix_broken_preferences() {
# Remove broken plist
rm -f "$plist_file" 2> /dev/null || true
((broken_count++))
done < <(run_with_timeout 10 sh -c "find '$prefs_dir' -maxdepth 1 -name '*.plist' -type f 2> /dev/null || true")
done < <(command find "$prefs_dir" -maxdepth 1 -name "*.plist" -type f 2> /dev/null || true)
# Check ByHost preferences with timeout protection
local byhost_dir="$prefs_dir/ByHost"
@@ -57,7 +57,7 @@ fix_broken_preferences() {
rm -f "$plist_file" 2> /dev/null || true
((broken_count++))
done < <(run_with_timeout 10 sh -c "find '$byhost_dir' -name '*.plist' -type f 2> /dev/null || true")
done < <(command find "$byhost_dir" -name "*.plist" -type f 2> /dev/null || true)
fi
echo "$broken_count"
@@ -105,51 +105,7 @@ fix_broken_login_items() {
launchctl unload "$plist_file" 2> /dev/null || true
rm -f "$plist_file" 2> /dev/null || true
((broken_count++))
done < <(run_with_timeout 10 sh -c "find '$launch_agents_dir' -name '*.plist' -type f 2> /dev/null || true")
done < <(command find "$launch_agents_dir" -name "*.plist" -type f 2> /dev/null || true)
echo "$broken_count"
}
# ============================================================================
# Check for broken configurations
# Returns: JSON line if issues found, empty otherwise
# ============================================================================
check_broken_configs() {
local prefs_dir="$HOME/Library/Preferences"
local launch_agents_dir="$HOME/Library/LaunchAgents"
local broken_prefs=0
local broken_items=0
# Count broken preferences
if [[ -d "$prefs_dir" ]]; then
while IFS= read -r plist_file; do
[[ -f "$plist_file" ]] || continue
local filename=$(basename "$plist_file")
case "$filename" in
com.apple.* | .GlobalPreferences* | loginwindow.plist) continue ;;
esac
plutil -lint "$plist_file" > /dev/null 2>&1 || ((broken_prefs++))
done < <(run_with_timeout 10 sh -c "find '$prefs_dir' -maxdepth 1 -name '*.plist' -type f 2> /dev/null || true")
fi
# Count broken login items
if [[ -d "$launch_agents_dir" ]]; then
while IFS= read -r plist_file; do
[[ -f "$plist_file" ]] || continue
local filename=$(basename "$plist_file")
case "$filename" in com.apple.*) continue ;; esac
local program=$(plutil -extract Program raw "$plist_file" 2> /dev/null || echo "")
[[ -z "$program" ]] && program=$(plutil -extract ProgramArguments.0 raw "$plist_file" 2> /dev/null || echo "")
[[ -z "$program" ]] && continue
[[ -e "$program" ]] || ((broken_items++))
done < <(run_with_timeout 10 sh -c "find '$launch_agents_dir' -name '*.plist' -type f 2> /dev/null || true")
fi
local total=$((broken_prefs + broken_items))
if [[ $total -gt 0 ]]; then
echo "fix_broken_configs|Fix Broken Configurations|Fix $total broken preference/login item files|false"
fi
}