Per tw93's feedback on PR #305, consolidate repair utilities into
the optimize command to keep the CLI simple and unified.
Changes:
- Add repair flags to optimize: -Repair, -Font, -Icon, -Search, -Store
- Remove standalone repair.ps1 command
- Update mole.ps1 menu and help to reflect changes
- optimize now handles both optimization and repair tasks
Usage:
mole optimize # Standard optimizations
mole optimize -Repair # Optimizations + all repairs
mole optimize -Icon -Font # Optimizations + specific repairs
- Add Clear-GameMediaFiles function to clean old game media (>90d by default)
- Supports NVIDIA ShadowPlay/Highlights, AMD ReLive, Xbox Game Bar
- Supports Steam screenshots, OBS recordings, Medal.tv, Overwolf/Outplayed
- Includes game-specific replays (Fortnite, LoL, Valorant, Rocket League, etc.)
- New -GameMedia flag for mole clean command
- Uses age-based cleanup to protect recent recordings
Add new 'mole repair' command with the following utilities:
- DNS cache flush (Repair-DnsCache)
- Font cache rebuild (Repair-FontCache) - requires admin
- Icon cache rebuild (Repair-IconCache) - restarts Explorer
- Windows Search index reset (Repair-SearchIndex) - requires admin
- Windows Store cache reset (Repair-StoreCache) - runs wsreset.exe
Features:
- Interactive menu when run without arguments
- Command-line flags: -DNS, -Font, -Icon, -Search, -Store, -All
- Dry-run mode support
- Proper service stop/start for font and search repairs
Usage:
mole repair # Interactive menu
mole repair -DNS # Flush DNS only
mole repair -All # Run all repairs
Add Clear-GPUShaderCaches function to clean GPU shader caches:
- NVIDIA: DXCache, GLCache, NV_Cache
- AMD: DXCache, GLCache, VkCache
- Intel: ShaderCache
- DirectX: D3DSCache, DirectX Shader Cache
- Vulkan: VulkanCache (pipeline cache)
These caches can grow to 10GB+ and are safe to delete.
They will be rebuilt automatically when needed.
Integrated into main clean.ps1 workflow.
- Implemented progress percentage display (e.g., `(45%)`) in `cmd/analyze` to show scanning status based on cached total files.
- Kept the UI clean by avoiding a full progress bar.
- fix: formatting improvements in `bin/touchid.sh`.
- Use temporary files (*.new) during installation process
- Perform atomic 'mv -f' operation to replace binaries
- Prevent partial updates if process is interrupted/fails
- Fixes critical issue where failed update deleted existing app
- Add classify_cleanup_risk() for risk level classification (LOW/MEDIUM/HIGH)
- Enhance safe_clean() with operation details and risk info
- Show item counts and file lists in debug mode
- Support for lib/clean/user.sh debug enhancements
- Part of GitHub issue #242 implementation
This commit introduces a new `completion` command that provides shell
completion for bash, zsh, and fish.
The completion is implemented as a shell script in `bin/completion.sh`
and the main `mole` script has been updated to use it.
This approach was chosen to keep the completion logic in shell script,
as the `mole` command is primarily a set of shell scripts.
- Refactor safe_clean to decouple deletion logic from size calculation
- Attempt deletion for all existing paths, even if size is 0 or unknown
- Correctly count failures only for files that existed but couldn't be removed
- Skip destructive operations (killall, launchctl unload, sudo) in dry-run mode
- Add opt_msg() helper for consistent output formatting
- Refactor opt_system_services_refresh() with service array
- Show appropriate summary for dry-run vs actual execution
- Skip sudo session prompt in dry-run mode
- Add lib/manage/purge_paths.sh for interactive path management
- Shows current paths status and opens editor for customization
- Update bin/purge.sh to handle --paths option
- Update README with new command
- Remove duplicate comment in project.sh
- Fix color code issue in purge.sh help message
- Add proper spacing after load_purge_config function
- Add shell syntax highlighting in README code block
- Add Xcode Archives to whitelist options (fixes#195)