diff --git a/bin/dkpurge b/bin/dkpurge index b7a0dcd..15008b3 100755 --- a/bin/dkpurge +++ b/bin/dkpurge @@ -1,22 +1,7 @@ #!/bin/bash -function read_yn() { - local ANS - - $ECHO -n "$1 [Y/n]" - read -r ANS - - case "$ANS" in - 'y'|'Y'|'Yes'|'') - return 0 - ;; - *) - return 1 - ;; - esac -} - NORMAL='\e[0m' +BOLD='\e[1m' RED='\e[31m' ECHO='echo -e' @@ -33,28 +18,46 @@ IMG="$(docker images -q 2> /dev/null)" if [ -n "$PS" ]; then - $ECHO "${RED}CONTAINERS${NORMAL}" + $ECHO "${BOLD}${RED}CONTAINERS${NORMAL}" docker ps -a - read_yn "Clean Containers?" && \ - echo "$PS" | xargs docker rm -f + $ECHO -n "Prune Containers? [Y/n/a] " + read -r ANS + case "${ANS,,}" in + 'y'|'yes'|'') + echo "$PS" | xargs docker rm 2> /dev/null + ;; + 'a'|'all') + echo "$PS" | xargs docker rm -f + ;; + esac fi if [ -n "$VOL" ]; then - $ECHO "${RED}VOLUMES${NORMAL}" + $ECHO "${BOLD}${RED}VOLUMES${NORMAL}" docker volume ls - read_yn "Clean Volumes?" && \ - echo "$VOL" | xargs docker volume rm -f + $ECHO -n "Prune Volumes? [Y/n] " + read -r ANS + case "${ANS,,}" in + 'y'|'yes'|'') + echo "$VOL" | xargs docker volume rm -f 2> /dev/null + ;; + esac fi if [ -n "$IMG" ]; then - $ECHO "${RED}IMAGES${NORMAL}" + $ECHO "${BOLD}${RED}IMAGES${NORMAL}" docker images - if read_yn "Clean Images?"; then - echo "$IMG" | xargs docker image rm -f - elif read_yn "Prune Images?"; then - docker image prune -f - fi + $ECHO -n "Prune Images? [Y/n/a] " + read -r ANS + case "${ANS,,}" in + 'y'|'yes'|'') + docker image prune -f + ;; + 'a'|'all') + echo "$IMG" | xargs docker image rm -f 2> /dev/null + ;; + esac fi