fix: small optimizations

This commit is contained in:
AngeD 2022-10-24 16:14:25 +02:00
parent 9e53531da9
commit c786785b9c

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
#TODO: group flags into one command
# like -I == $i -a
function usage() { function usage() {
cat << EOF cat << EOF
Usage: $0 [-hcCviIna] Usage: $0 [-hcCviIna]
@ -41,9 +38,9 @@ c=1
C=2 C=2
v=4 v=4
i=8 i=8
I=16 # I=16
n=32 n=32
a="$((c + C + v + I + n))" # a="$((c + C + v + I + n))"
CLEAN=0 CLEAN=0
while getopts hcCviIna o; do while getopts hcCviIna o; do
@ -64,13 +61,15 @@ while getopts hcCviIna o; do
CLEAN="$(add_opt "$CLEAN" "$i")" CLEAN="$(add_opt "$CLEAN" "$i")"
;; ;;
I) I)
CLEAN="$(add_opt "$CLEAN" "$I")" CLEAN="$(add_opt "$CLEAN" "$i")"
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" "$C" "$v" "$i" "$n")"
IMG_OPT="-a"
;; ;;
*) *)
exit 1 exit 1
@ -83,42 +82,32 @@ if [ "$CLEAN" == 0 ]; then
fi fi
VALUES=( VALUES=(
"$a" "$((c + i + v + n))"
"$((c + i + n))" "$((c + i + n))"
"$((c + I + n))"
"$((c + v + n))"
"$c" "$c"
"$v" "$v"
"$i" "$i"
"$I"
"$n" "$n"
) )
SYS="docker system" CON="container"
CON="docker container"
VOL="docker volume"
IMG="docker image"
NET="docker network"
PRUNE="prune -f" PRUNE="prune -f"
COMMANDS=( COMMANDS=(
"$SYS $PRUNE -a --volumes" "docker system $PRUNE $IMG_OPT --volumes"
"$SYS $PRUNE" "docker system $PRUNE $IMG_OPT"
"$SYS $PRUNE -a" "docker $CON $PRUNE"
"$SYS $PRUNE --volumes" "docker volume $PRUNE"
"$CON $PRUNE" "docker image $PRUNE $IMG_OPT"
"$VOL $PRUNE" "docker network $PRUNE"
"$IMG $PRUNE"
"$IMG $PRUNE -a"
"$NET $PRUNE"
) )
if [ "$((CLEAN & "$C"))" == "$C" ]; then if [ "$((CLEAN & "$C"))" == "$C" ]; then
$CON ls -aq | xargs $CON stop docker "$CON" ls -aq | xargs docker "$CON" stop 2> /dev/null
fi fi
for idx in "${!VALUES[@]}"; do for idx in "${!VALUES[@]}"; do
mask="${VALUES[$idx]}" mask="${VALUES[$idx]}"
if [ "$((CLEAN & mask))" == "$mask" ]; then if [ "$((CLEAN & mask))" == "$mask" ]; then
bash -c "${COMMANDS[$idx]}" bash -c "${COMMANDS[$idx]}"
CLEAN="$((CLEAN - mask))" CLEAN="$((CLEAN - mask))"