add podman control script
This commit is contained in:
parent
3ca7eea87d
commit
380ada85ac
1 changed files with 100 additions and 0 deletions
100
scripts/podman.sh
Executable file
100
scripts/podman.sh
Executable file
|
@ -0,0 +1,100 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# author: Daniel Sommer <daniel.sommer@velvettear.de>
|
||||||
|
# license: MIT
|
||||||
|
|
||||||
|
[[ "$(id -u)" != "0" ]] && printf ">> error: permission denied\n" >&2 && exit 1
|
||||||
|
|
||||||
|
[[ -z "$1" ]] && printf ">> error: action unspecified\n" >&2 && exit 1
|
||||||
|
|
||||||
|
printf ">> podman control script started!\n\n"
|
||||||
|
|
||||||
|
current="$(pwd)"
|
||||||
|
what="podman-compose.yml"
|
||||||
|
|
||||||
|
path="$2"
|
||||||
|
[[ -z "$path" ]] && path="$(dirname $0)"
|
||||||
|
path="$(realpath $path)"
|
||||||
|
printf "> looking for '"$what"' files in '"$path"'...\n"
|
||||||
|
stacks="$(find "$path" -name 'podman-compose.yml')"
|
||||||
|
|
||||||
|
[[ -z "$stacks" ]] && printf ">> error: could not find any files\n" >&2 && exit 1
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
up|down|restart|upgrade|update)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf "error: action '"$1"' unknown\n" >&2 && exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for stack in $stacks; do
|
||||||
|
dir="$(dirname "$stack")"
|
||||||
|
name="$(basename "$dir")"
|
||||||
|
cd "$dir"
|
||||||
|
case "$1" in
|
||||||
|
up)
|
||||||
|
printf "\n>> starting '"$name"'..."
|
||||||
|
podman-compose up -d &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
down)
|
||||||
|
printf "\n>> stopping '"$name"'..."
|
||||||
|
podman-compose down &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart)
|
||||||
|
printf "\n>> restarting '"$name"'..."
|
||||||
|
podman-compose restart &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
upgrade|update)
|
||||||
|
printf "\n>> upgrading '"$name"'...\n"
|
||||||
|
printf "> stopping '"$name"'..."
|
||||||
|
podman-compose down &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
printf "> removing image(s)..."
|
||||||
|
podman image prune -a -f &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
printf "> pulling new image(s) and restarting '"$name"'..."
|
||||||
|
podman-compose up -d &> /dev/null
|
||||||
|
if [[ "$?" == "0" ]]; then
|
||||||
|
printf " done!\n"
|
||||||
|
else
|
||||||
|
printf " error!\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
cd "$current"
|
||||||
|
|
||||||
|
msg="\n>> podman control script finished"
|
||||||
|
[[ "$SECONDS" ]] && msg="$msg after "$SECONDS" seconds"
|
||||||
|
printf "$msg!\n"
|
Loading…
Reference in a new issue