fix: dkprune combined flags

This commit is contained in:
AngeD 2022-10-24 11:30:48 +02:00
parent 2f5bb2e979
commit 83048705cd
5 changed files with 47 additions and 38 deletions

@ -1 +1 @@
Subproject commit ee2e8c63cff0a8bfc7f4ef985ea466f10bb7e691 Subproject commit d8d48b7a8ce12605378fba6391348b99e8a7a4c1

@ -1 +1 @@
Subproject commit f174a0367b4fc7cb17710d867e25ea792311c418 Subproject commit 5c7db4055d89f9057d562f4f8b9d03189c9f9786

@ -1 +1 @@
Subproject commit 3eb6577a3b58e4d0e76057ad1309255678739b61 Subproject commit 682fa459173208997092adf872baa66a7f04692d

@ -1 +1 @@
Subproject commit a7d910c3a61d8599f748a8ddae59ecdd9424022a Subproject commit 0066280c3e971e1e45a9037f6d0b993dabcc3576

View File

@ -1,5 +1,8 @@
#!/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
@ -73,40 +76,46 @@ while getopts hcCviIna o; do
esac esac
done done
if [ "$((CLEAN & C))" == "$C" ]; then
docker container ls -aq | xargs docker stop VALUES=(
"$a"
"$((c + i + n))"
"$((c + I + n))"
"$((c + v + n))"
"$c"
"$v"
"$i"
"$I"
"$n"
)
SYS="docker system"
CON="docker container"
VOL="docker volume"
IMG="docker image"
NET="docker network"
PRUNE="prune -f"
COMMANDS=(
"$SYS $PRUNE -a --volumes"
"$SYS $PRUNE"
"$SYS $PRUNE -a"
"$SYS $PRUNE --volumes"
"$CON $PRUNE"
"$VOL $PRUNE"
"$IMG $PRUNE"
"$IMG $PRUNE -a"
"$NET $PRUNE"
)
if [ "$((CLEAN & "$C"))" == "$C" ]; then
$CON ls -aq | xargs $CON stop
fi fi
if [ "$((CLEAN & c))" == "$c" ]; then
docker container prune -f
fi
PRUNE="docker system prune -f" for idx in "${!VALUES[@]}"; do
case "$CLEAN" in mask="${VALUES[$idx]}"
"$v") if [ "$((CLEAN & mask))" == "$mask" ]; then
docker volume prune -f bash -c "${COMMANDS[$idx]}"
;; CLEAN="$((CLEAN - mask))"
"$i") fi
docker image prune -f done
;;
"$I")
docker image prune -af
;;
"$n")
docker network prune -f
;;
"$((c + i + n))")
$PRUNE
;;
"$((c + I + n))")
$PRUNE -a
;;
"$((c + v + n))")
$PRUNE --volumes
;;
"$a")
$PRUNE -a --volumes
;;
*)
;;
esac