From ba478a3120ebadc3838fdccb770e1efed67c6a4f Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 21 Oct 2022 16:36:41 +0200 Subject: [PATCH 1/4] feat: dkla, cleanup --- .config/zsh/.docker_aliases | 105 ++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/.config/zsh/.docker_aliases b/.config/zsh/.docker_aliases index b0aeb1c..415aa39 100644 --- a/.config/zsh/.docker_aliases +++ b/.config/zsh/.docker_aliases @@ -6,74 +6,75 @@ fi alias dk='docker' # containers -alias dkci='docker container inspect' -alias dkcls='docker container ls' -alias dkclsa='docker container ls -a' +alias dkci='docker container inspect' +alias dkcls='docker container ls' +alias dkclsa='docker container ls -a' alias dkclsaq='docker container ls -a -q' -alias dkclsq='docker container ls -q' -alias dkcp='docker container prune' -alias dkcpf='docker container prune -f' -alias dkcrm='docker container rm' -alias dkcrmf='docker container rm -f' -alias dkcsp='docker container stop' -alias dkcst='docker container start' -alias dkex='docker container exec -i -t' -alias dklo='docker logs -f' -alias dkr='docker run -i -t' +alias dkclsq='docker container ls -q' +alias dkcp='docker container prune' +alias dkcpf='docker container prune -f' +alias dkcrm='docker container rm' +alias dkcrmf='docker container rm -f' +alias dkcsp='docker container stop' +alias dkcst='docker container start' +alias dkex='docker container exec -i -t' +alias dklo='docker logs -f' +alias dkr='docker run -i -t' # images -alias dkb='docker build .' -alias dki='docker image' -alias dkic='docker image create' -alias dkii='docker image inspect' -alias dkils='docker image ls' -alias dkilsa='docker image ls -a' +alias dkb='docker build .' +alias dki='docker image' +alias dkic='docker image create' +alias dkii='docker image inspect' +alias dkils='docker image ls' +alias dkilsa='docker image ls -a' alias dkilsaq='docker image ls -a -q' -alias dkilsq='docker image ls -q' -alias dkip='docker image prune' -alias dkipf='docker image prune -f' -alias dkirm='docker image rm' -alias dkirmf='docker image rm -f' -alias dkl='docker pull' -alias dkp='docker push' -alias dkt='docker tag' +alias dkilsq='docker image ls -q' +alias dkip='docker image prune' +alias dkipf='docker image prune -f' +alias dkirm='docker image rm' +alias dkirmf='docker image rm -f' +alias dkl='docker pull' +alias dkla="docker image ls | awk '{print \"docker pull \" \$1 \":\" \$2}' | $SHELL" +alias dkp='docker push' +alias dkt='docker tag' # volumes -alias dkv='docker volume' -alias dkvc='docker volume create' -alias dkvi='docker volume inspect' -alias dkvls='docker volume ls' +alias dkv='docker volume' +alias dkvc='docker volume create' +alias dkvi='docker volume inspect' +alias dkvls='docker volume ls' alias dkvlsq='docker volume ls -q' -alias dkvp='docker volume prune' -alias dkvpf='docker volume prune -f' -alias dkvrm='docker volume rm' +alias dkvp='docker volume prune' +alias dkvpf='docker volume prune -f' +alias dkvrm='docker volume rm' alias dkvrmf='docker volume rm -f' # networks -alias dkn='docker network' -alias dknc='docker network create' -alias dkni='docker network inspect' -alias dknls='docker network ls' +alias dkn='docker network' +alias dknc='docker network create' +alias dkni='docker network inspect' +alias dknls='docker network ls' alias dknlsq='docker network ls -q' -alias dknp='docker network prune' -alias dknpf='docker network prune -f' -alias dknrm='docker network rm' +alias dknp='docker network prune' +alias dknpf='docker network prune -f' +alias dknrm='docker network rm' alias dknrmf='docker network rm -f' # system -alias dks='docker system' -alias dksdf='docker system df' -alias dksp='docker system prune' -alias dkspa='docker system prune -a' -alias dkspaf='docker system prune -af' -alias dkspf='docker system prune -f' -alias dkspv='docker system prune --volumes' -alias dkspva='docker system prune --volumes -a' +alias dks='docker system' +alias dksdf='docker system df' +alias dksp='docker system prune' +alias dkspa='docker system prune -a' +alias dkspaf='docker system prune -af' +alias dkspf='docker system prune -f' +alias dkspv='docker system prune --volumes' +alias dkspva='docker system prune --volumes -a' alias dkspvaf='docker system prune --volumes -af' -alias dkspvf='docker system prune --volumes -f' +alias dkspvf='docker system prune --volumes -f' # docker-compose alias dc='docker-compose' -alias dcd='docker-compose down' -alias dcup='docker-compose up -d' +alias dcd='docker-compose down' +alias dcup='docker-compose up -d' alias dcupb='docker-compose up -d --build' From 060f006fc71174b11ff61c1bcb2ae0e32d5b9961 Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 21 Oct 2022 16:36:56 +0200 Subject: [PATCH 2/4] feat: dkpurge v2.0 --- bin/dkpurge | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100755 bin/dkpurge diff --git a/bin/dkpurge b/bin/dkpurge new file mode 100755 index 0000000..5167e49 --- /dev/null +++ b/bin/dkpurge @@ -0,0 +1,110 @@ +#!/bin/bash + +function usage() { + cat << EOF +Usage: $0 -hcCviIna +Options: + -h Show this help and exits + -c Remove stopped containers + -C Remove all containers + -v Remove volumes not used by at least one container + -i Remove all dangling images + -I Remove all images + -n Remove networks not used by at least one container + -a All of the above (-CvIn) +EOF + exit 0 +} + +function add_opt() { + if [ "$(($1 & $2))" == 0 ]; then + echo "$(($1 + $2))" + else + echo "$1" + fi +} + +CLEAN=0 +c=1 +C=2 +v=4 +i=8 +I=16 +n=32 +a="$((c + C + v + I + n))" + + +while getopts hcCviIna o; do + case "$o" in + h) + usage + ;; + c) + CLEAN="$(add_opt "$CLEAN" "$c")" + ;; + C) + CLEAN="$(add_opt "$CLEAN" "$c")" + CLEAN="$(add_opt "$CLEAN" "$C")" + ;; + v) + CLEAN="$(add_opt "$CLEAN" "$v")" + ;; + i) + CLEAN="$(add_opt "$CLEAN" "$i")" + ;; + I) + CLEAN="$(add_opt "$CLEAN" "$I")" + ;; + n) + CLEAN="$(add_opt "$CLEAN" "$n")" + ;; + a) + CLEAN="$(add_opt "$CLEAN" "$c")" + CLEAN="$(add_opt "$CLEAN" "$C")" + CLEAN="$(add_opt "$CLEAN" "$v")" + CLEAN="$(add_opt "$CLEAN" "$I")" + CLEAN="$(add_opt "$CLEAN" "$n")" + ;; + *) + exit 1 + ;; + esac +done + +if [ "$((CLEAN & C))" == "$C" ]; then # C + docker container ls -aq | xargs docker stop +fi + +if [ "$((CLEAN & c))" == "$c" ]; then # C + docker container prune -f +fi + +PRUNE="docker system prune -f" +case "$CLEAN" in + "$v") + docker volume prune -f + ;; + "$i") + docker image prune -f + ;; + "$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 From 0226791b14d55b9a127bce559e1475d5865edd6f Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 21 Oct 2022 17:06:46 +0200 Subject: [PATCH 3/4] fix: cleaner dkpurge getopts --- bin/dkpurge | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/bin/dkpurge b/bin/dkpurge index 5167e49..f091336 100755 --- a/bin/dkpurge +++ b/bin/dkpurge @@ -17,14 +17,19 @@ EOF } function add_opt() { - if [ "$(($1 & $2))" == 0 ]; then - echo "$(($1 + $2))" - else - echo "$1" - fi + local RESULT + + RESULT="$(unset "1")" + for o in "$@"; do + if [ "$((RESULT & o))" == 0 ]; then + RESULT="$((RESULT + o))" + else + RESULT="$RESULT" + fi + done + echo "$RESULT" } -CLEAN=0 c=1 C=2 v=4 @@ -33,7 +38,7 @@ I=16 n=32 a="$((c + C + v + I + n))" - +CLEAN=0 while getopts hcCviIna o; do case "$o" in h) @@ -43,8 +48,7 @@ while getopts hcCviIna o; do CLEAN="$(add_opt "$CLEAN" "$c")" ;; C) - CLEAN="$(add_opt "$CLEAN" "$c")" - CLEAN="$(add_opt "$CLEAN" "$C")" + CLEAN="$(add_opt "$CLEAN" "$c" "$C")" ;; v) CLEAN="$(add_opt "$CLEAN" "$v")" @@ -59,11 +63,7 @@ while getopts hcCviIna o; do CLEAN="$(add_opt "$CLEAN" "$n")" ;; a) - CLEAN="$(add_opt "$CLEAN" "$c")" - CLEAN="$(add_opt "$CLEAN" "$C")" - CLEAN="$(add_opt "$CLEAN" "$v")" - CLEAN="$(add_opt "$CLEAN" "$I")" - CLEAN="$(add_opt "$CLEAN" "$n")" + CLEAN="$(add_opt "$CLEAN" "$c" "$C" "$v" "$I" "$n")" ;; *) exit 1 From 17333b1992ab11ede382fe79a0a4a55acd8d9061 Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 21 Oct 2022 21:58:03 +0200 Subject: [PATCH 4/4] feat: dkpurge auto sudo and better documentation --- bin/dkpurge | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/bin/dkpurge b/bin/dkpurge index f091336..1cc88c2 100755 --- a/bin/dkpurge +++ b/bin/dkpurge @@ -7,11 +7,11 @@ Options: -h Show this help and exits -c Remove stopped containers -C Remove all containers - -v Remove volumes not used by at least one container - -i Remove all dangling images + -v Remove unused volumes + -i Remove unused images -I Remove all images - -n Remove networks not used by at least one container - -a All of the above (-CvIn) + -n Remove unused networks + -a All of the above, equivalent of -CvIn EOF exit 0 } @@ -23,13 +23,15 @@ function add_opt() { for o in "$@"; do if [ "$((RESULT & o))" == 0 ]; then RESULT="$((RESULT + o))" - else - RESULT="$RESULT" fi done echo "$RESULT" } +if ! docker container ls > /dev/null 2>&1 && [ "$EUID" != 0 ]; then + exec sudo -- "$0" "$@" +fi + c=1 C=2 v=4