mirror of
https://github.com/tw93/Mole.git
synced 2026-02-11 15:18:59 +00:00
✨ Increased protection for databases
This commit is contained in:
25
README.md
25
README.md
@@ -50,7 +50,8 @@ mole update # Update Mole
|
|||||||
mole --help # Show help
|
mole --help # Show help
|
||||||
```
|
```
|
||||||
|
|
||||||
> 💡 New to terminal? Check [小白使用指南](./GUIDE.md) · Homebrew users: `brew upgrade mole` to update
|
> 💡 New to terminal? Check [小白使用指南](./GUIDE.md) · Homebrew users: `brew upgrade mole` to update
|
||||||
|
> ⚠️ **Recommended:** Always run `mole clean --dry-run` first to preview changes before cleanup
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -60,19 +61,19 @@ mole --help # Show help
|
|||||||
$ mole clean
|
$ mole clean
|
||||||
|
|
||||||
▶ System essentials
|
▶ System essentials
|
||||||
✓ User app cache (45.2GB) # Caches, logs, trash (20-50GB)
|
✓ User app cache (45.2GB) # Caches, logs, trash 20-50GB typical
|
||||||
✓ User app logs (2.1GB)
|
✓ User app logs (2.1GB)
|
||||||
✓ Trash (12.3GB)
|
✓ Trash (12.3GB)
|
||||||
|
|
||||||
▶ Browser cleanup # Chrome, Safari, Arc (5-15GB)
|
▶ Browser cleanup # Chrome, Safari, Arc 5-15GB typical
|
||||||
✓ Chrome cache (8.4GB)
|
✓ Chrome cache (8.4GB)
|
||||||
✓ Safari cache (2.1GB)
|
✓ Safari cache (2.1GB)
|
||||||
|
|
||||||
▶ Developer tools # npm, Docker, Xcode (15-40GB)
|
▶ Developer tools # npm, Docker, Xcode 15-40GB typical
|
||||||
✓ Xcode derived data (9.1GB)
|
✓ Xcode derived data (9.1GB)
|
||||||
✓ Node.js cache (14.2GB)
|
✓ Node.js cache (14.2GB)
|
||||||
|
|
||||||
▶ Others # Cloud, Office, Media (10-40GB)
|
▶ Others # Cloud, Office, Media 10-40GB typical
|
||||||
✓ Dropbox cache (5.2GB)
|
✓ Dropbox cache (5.2GB)
|
||||||
✓ Spotify cache (3.1GB)
|
✓ Spotify cache (3.1GB)
|
||||||
|
|
||||||
@@ -105,12 +106,12 @@ $ mole uninstall
|
|||||||
|
|
||||||
🗑️ Uninstalling: Adobe Creative Cloud
|
🗑️ Uninstalling: Adobe Creative Cloud
|
||||||
✓ Removed application # /Applications/
|
✓ Removed application # /Applications/
|
||||||
✓ Cleaned 52 related files # ~/Library/ (12 locations)
|
✓ Cleaned 52 related files # ~/Library/ across 12 locations
|
||||||
- Support files & caches # Application Support, Caches
|
- Support files & caches # Application Support, Caches
|
||||||
- Preferences & logs # Preferences, Logs
|
- Preferences & logs # Preferences, Logs
|
||||||
- WebKit storage & cookies # WebKit, HTTPStorages
|
- WebKit storage & cookies # WebKit, HTTPStorages
|
||||||
- Extensions & plugins # Internet Plug-Ins, Services
|
- Extensions & plugins # Internet Plug-Ins, Services
|
||||||
- System files (sudo) # /Library/, Launch daemons
|
- System files with sudo # /Library/, Launch daemons
|
||||||
|
|
||||||
====================================================================
|
====================================================================
|
||||||
🎉 UNINSTALLATION COMPLETE!
|
🎉 UNINSTALLATION COMPLETE!
|
||||||
@@ -145,10 +146,14 @@ Total: 156.8GB
|
|||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
1. **Will Mole delete important files?** - No. Mole has built-in protection and skips system-critical files.
|
1. **Will Mole delete important files?** - No. Mole has built-in protection for:
|
||||||
2. **Can I undo cleanup operations?** - Cache files are safe to delete and will regenerate automatically.
|
- System-critical files like Input Methods, Dock, and System Preferences
|
||||||
|
- User data from IDEs like JetBrains DataGrip and VS Code, plus database tools
|
||||||
|
- License data from paid apps like 1Password and Adobe products
|
||||||
|
- App settings are only removed when you explicitly uninstall the app
|
||||||
|
2. **Can I undo cleanup operations?** - Cache files are safe to delete and will regenerate automatically. For important data protection, use the whitelist feature via `mole clean --whitelist`.
|
||||||
3. **How often should I run cleanup?** - Once a month is sufficient. Run when disk space is low.
|
3. **How often should I run cleanup?** - Once a month is sufficient. Run when disk space is low.
|
||||||
4. **Is it safe to use?** - Yes. The tool previews what will be deleted before any action (`--dry-run`).
|
4. **Is it safe to use?** - Yes. **Always run `mole clean --dry-run` first** to preview what will be deleted before any action.
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
|
|||||||
23
bin/clean.sh
23
bin/clean.sh
@@ -819,6 +819,29 @@ perform_cleanup() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
# Also check for non-com.* folders that may contain user data
|
||||||
|
for support_dir in ~/Library/Application\ Support/*; do
|
||||||
|
[[ -d "$support_dir" ]] || continue
|
||||||
|
local dir_name=$(basename "$support_dir")
|
||||||
|
# Skip if it starts with com. (already processed) or is in dot directories
|
||||||
|
[[ "$dir_name" == com.* || "$dir_name" == .* ]] && continue
|
||||||
|
# CRITICAL: Protect important data folders (JetBrains, database tools, etc.)
|
||||||
|
if should_protect_data "$dir_name"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Only clean if significant size and looks like app data, but be conservative
|
||||||
|
# Skip common system/user folders
|
||||||
|
case "$dir_name" in
|
||||||
|
"CrashReporter"|"AddressBook"|"CallHistoryDB"|"CallHistoryTransactions"|\
|
||||||
|
"CloudDocs"|"icdd"|"IdentityServices"|"Mail"|"CallServices"|\
|
||||||
|
"com.apple."*|"Adobe"|"Google"|"Mozilla"|"Netscape"|"Yahoo"|\
|
||||||
|
"AddressBook"|"iCloud"|"iLifeMediaBrowser"|"MobileSync"|\
|
||||||
|
"CallHistory"|"FaceTime"|"Twitter")
|
||||||
|
# System or commonly used folders, skip
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
echo " ${GREEN}✓${NC} Complete ($data_count removed)"
|
echo " ${GREEN}✓${NC} Complete ($data_count removed)"
|
||||||
|
|
||||||
# Check for orphaned preferences (with protection for critical system settings)
|
# Check for orphaned preferences (with protection for critical system settings)
|
||||||
|
|||||||
@@ -332,12 +332,16 @@ readonly DATA_PROTECTED_BUNDLES=(
|
|||||||
"com.dashlane.*" # Dashlane
|
"com.dashlane.*" # Dashlane
|
||||||
"com.bitwarden.*" # Bitwarden
|
"com.bitwarden.*" # Bitwarden
|
||||||
"com.keepassx.*" # KeePassXC
|
"com.keepassx.*" # KeePassXC
|
||||||
"com.jetbrains.*" # JetBrains IDEs (dev tools)
|
"com.jetbrains.*" # JetBrains IDEs (dev tools with user data)
|
||||||
|
"JetBrains*" # JetBrains Application Support folders
|
||||||
"com.sublimetext.*" # Sublime Text (paid)
|
"com.sublimetext.*" # Sublime Text (paid)
|
||||||
"com.panic.transmit*" # Transmit (paid)
|
"com.panic.transmit*" # Transmit (paid)
|
||||||
"com.sequelpro.*" # Database tools
|
"com.sequelpro.*" # Database tools
|
||||||
"com.sequel-ace.*"
|
"com.sequel-ace.*"
|
||||||
"com.tinyapp.*" # TablePlus (paid)
|
"com.tinyapp.*" # TablePlus (paid)
|
||||||
|
"com.dbeaver.*" # DBeaver (database tool)
|
||||||
|
"com.navicat.*" # Navicat (database tool)
|
||||||
|
"com.mongodb.compass" # MongoDB Compass
|
||||||
"com.adobe.*" # Adobe Creative Suite (design tools)
|
"com.adobe.*" # Adobe Creative Suite (design tools)
|
||||||
"com.bohemiancoding.*" # Sketch
|
"com.bohemiancoding.*" # Sketch
|
||||||
"com.figma.*" # Figma
|
"com.figma.*" # Figma
|
||||||
|
|||||||
Reference in New Issue
Block a user