feat: optimized dkprune -c/-C

This commit is contained in:
AngeD 2022-11-14 15:52:16 +01:00
parent b3b3435a9e
commit 6697d0a9a4

View File

@ -30,12 +30,12 @@ function add_opt() {
echo "$RESULT" echo "$RESULT"
} }
if ! [ -w "/var/run/docker.sock" ] && [ "$EUID" != 0 ]; then if ! [ -w '/var/run/docker.sock' ] && [ "$EUID" != 0 ]; then
exec sudo -- "$0" "$@" exec sudo -- "$0" "$@"
fi fi
c=1 c=1
C=2 # C=2
v=4 v=4
i=8 i=8
# I=16 # I=16
@ -52,7 +52,8 @@ while getopts hcCviIna o; do
CLEAN="$(add_opt "$CLEAN" "$c")" CLEAN="$(add_opt "$CLEAN" "$c")"
;; ;;
C) C)
CLEAN="$(add_opt "$CLEAN" "$C")" CLEAN="$(add_opt "$CLEAN" "$c")"
CON_OPT="-f"
;; ;;
v) v)
CLEAN="$(add_opt "$CLEAN" "$v")" CLEAN="$(add_opt "$CLEAN" "$v")"
@ -62,14 +63,15 @@ while getopts hcCviIna o; do
;; ;;
I) I)
CLEAN="$(add_opt "$CLEAN" "$i")" CLEAN="$(add_opt "$CLEAN" "$i")"
IMG_OPT="-a" IMG_OPT='-a'
;; ;;
n) n)
CLEAN="$(add_opt "$CLEAN" "$n")" CLEAN="$(add_opt "$CLEAN" "$n")"
;; ;;
a) a)
CLEAN="$(add_opt "$CLEAN" "$c" "$C" "$v" "$i" "$n")" CLEAN="$(add_opt "$CLEAN" "$c" "$v" "$i" "$n")"
IMG_OPT="-a" CON_OPT="-f"
IMG_OPT='-a'
;; ;;
*) *)
exit 1 exit 1
@ -78,32 +80,30 @@ while getopts hcCviIna o; do
done done
if [ "$CLEAN" == 0 ]; then if [ "$CLEAN" == 0 ]; then
CLEAN="$((C + v + n))" CLEAN="$((c + v + n))"
CON_OPT="-f"
fi fi
VALUES=( VALUES=(
"$((c + i + v + n))" "$((c + i + v + n))"
"$((c + i + n))" "$((c + i + n))"
"$c"
"$v" "$v"
"$i" "$i"
"$n" "$n"
) )
CON="container" CON='container'
PRUNE="prune -f" PRUNE='prune -f'
COMMANDS=( COMMANDS=(
"docker system $PRUNE $IMG_OPT --volumes" "docker system $PRUNE $IMG_OPT --volumes"
"docker system $PRUNE $IMG_OPT" "docker system $PRUNE $IMG_OPT"
"docker $CON $PRUNE"
"docker volume $PRUNE" "docker volume $PRUNE"
"docker image $PRUNE $IMG_OPT" "docker image $PRUNE $IMG_OPT"
"docker network $PRUNE" "docker network $PRUNE"
) )
if [ "$((CLEAN & "$C"))" == "$C" ]; then if [ "$((CLEAN & "$c"))" == "$c" ]; then
docker "$CON" ls -aq | xargs docker "$CON" stop 2> /dev/null docker "$CON" ls -aq | xargs docker "$CON" rm "$CON_OPT" 2> /dev/null
CLEAN="$(add_opt "$CLEAN" "$c")"
fi fi
for idx in "${!VALUES[@]}"; do for idx in "${!VALUES[@]}"; do