dotfiles/bin/dkpurge
2022-08-31 22:12:35 +02:00

71 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
PS="$(docker ps -aq 2> /dev/null)"
if [ "$?" != 0 ] && [ "$EUID" != 0 ]; then
sudo -- "$0" "$@"
exit
fi
VOL="$(docker volume ls -q 2> /dev/null)"
IMG="$(docker images -q 2> /dev/null)"
NET="$(docker network ls -q 2> /dev/null)"
if [ -n "$PS" ]; then
docker ps -a
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
docker volume ls
echo -n "Prune Volumes? [Ya/n] "
read -r ANS
case "${ANS,,}" in
'y'|'yes'|'a'|'all'|'')
echo "$VOL" | xargs docker volume rm -f 2> /dev/null
;;
esac
fi
if [ -n "$IMG" ]; then
echo
docker image ls
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
if [ -n "$NET" ]; then
echo
docker network ls
echo -n "Prune Networks? [Y/n/a] "
read -r ANS
case "${ANS,,}" in
'y'|'yes'|'a'|'all'|'')
docker network prune -f
;;
esac
fi