mirror of
https://github.com/tw93/Mole.git
synced 2026-03-23 19:55:07 +00:00
feat(clean): add opt-in Docker unused data pruning (#554)
* feat(clean): add opt-in Docker unused data pruning * fix(clean): make docker prune default --------- Co-authored-by: Tw93 <hitw93@gmail.com>
This commit is contained in:
@@ -198,13 +198,18 @@ clean_dev_docker() {
|
|||||||
fi
|
fi
|
||||||
stop_section_spinner
|
stop_section_spinner
|
||||||
if [[ "$docker_running" == "true" ]]; then
|
if [[ "$docker_running" == "true" ]]; then
|
||||||
clean_tool_cache "Docker build cache" docker builder prune -af
|
# Remove unused images, stopped containers, unused networks, and
|
||||||
|
# anonymous volumes in one pass. This maps better to the large
|
||||||
|
# reclaimable "docker system df" buckets users typically see.
|
||||||
|
clean_tool_cache "Docker unused data" docker system prune -af --volumes
|
||||||
else
|
else
|
||||||
|
echo -e " ${GRAY}${ICON_WARNING}${NC} Docker unused data · skipped (daemon not running)"
|
||||||
|
note_activity
|
||||||
debug_log "Docker daemon not running, skipping Docker cache cleanup"
|
debug_log "Docker daemon not running, skipping Docker cache cleanup"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
note_activity
|
note_activity
|
||||||
echo -e " ${YELLOW}${ICON_DRY_RUN}${NC} Docker build cache · would clean"
|
echo -e " ${YELLOW}${ICON_DRY_RUN}${NC} Docker unused data · would clean"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
safe_clean ~/.docker/buildx/cache/* "Docker BuildX cache"
|
safe_clean ~/.docker/buildx/cache/* "Docker BuildX cache"
|
||||||
|
|||||||
@@ -160,24 +160,50 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "clean_dev_docker skips when daemon not running" {
|
@test "clean_dev_docker skips when daemon not running" {
|
||||||
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" MO_DEBUG=1 DRY_RUN=false bash --noprofile --norc <<'EOF'
|
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" DRY_RUN=false bash --noprofile --norc <<'EOF'
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
source "$PROJECT_ROOT/lib/core/common.sh"
|
source "$PROJECT_ROOT/lib/core/common.sh"
|
||||||
source "$PROJECT_ROOT/lib/clean/dev.sh"
|
source "$PROJECT_ROOT/lib/clean/dev.sh"
|
||||||
start_section_spinner() { :; }
|
start_section_spinner() { :; }
|
||||||
stop_section_spinner() { :; }
|
stop_section_spinner() { :; }
|
||||||
run_with_timeout() { return 1; }
|
run_with_timeout() { return 1; }
|
||||||
clean_tool_cache() { echo "$1"; }
|
|
||||||
safe_clean() { echo "$2"; }
|
safe_clean() { echo "$2"; }
|
||||||
debug_log() { echo "$*"; }
|
debug_log() { :; }
|
||||||
docker() { return 1; }
|
docker() { return 1; }
|
||||||
export -f docker
|
export -f docker
|
||||||
clean_dev_docker
|
clean_dev_docker
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
[[ "$output" == *"Docker daemon not running"* ]]
|
[[ "$output" == *"Docker unused data · skipped (daemon not running)"* ]]
|
||||||
[[ "$output" != *"Docker build cache"* ]]
|
[[ "$output" == *"Docker BuildX cache"* ]]
|
||||||
|
[[ "$output" != *"Docker unused data|Docker unused data docker system prune -af --volumes"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "clean_dev_docker prunes unused docker data when daemon is running" {
|
||||||
|
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" DRY_RUN=false bash --noprofile --norc <<'EOF'
|
||||||
|
set -euo pipefail
|
||||||
|
source "$PROJECT_ROOT/lib/core/common.sh"
|
||||||
|
source "$PROJECT_ROOT/lib/clean/dev.sh"
|
||||||
|
start_section_spinner() { :; }
|
||||||
|
stop_section_spinner() { :; }
|
||||||
|
run_with_timeout() { shift; "$@"; }
|
||||||
|
clean_tool_cache() { echo "$1|$*"; }
|
||||||
|
safe_clean() { :; }
|
||||||
|
note_activity() { :; }
|
||||||
|
debug_log() { :; }
|
||||||
|
docker() {
|
||||||
|
if [[ "$1" == "info" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
export -f docker
|
||||||
|
clean_dev_docker
|
||||||
|
EOF
|
||||||
|
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "$output" == *"Docker unused data|Docker unused data docker system prune -af --volumes"* ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "clean_developer_tools runs key stages" {
|
@test "clean_developer_tools runs key stages" {
|
||||||
|
|||||||
Reference in New Issue
Block a user