services-garbaye/functions.sh

225 lines
4.2 KiB
Bash

#!/usr/bin/env bash
SCRIPTNAME="$( basename -- "$0" )"
# check : current user is root?
check_root () {
[[ $EUID -eq 0 ]]
}
# ok if root
ensure_root () {
if ! check_root; then
echo "ERROR : This script must be run as root"
exit 1
else
return 0
fi
}
# ok if non root
ensure_not_root () {
if check_root; then
echo "ERROR : This script must not be *run* as root"
exit 1
else
return 0
fi
}
# ok if running script from current directory
ensure_pwd_is_scriptdir () {
if [[ $PWD != $ABSDIR ]]; then
echo "Please cd in the script directory before running it :"
echo "cd ${ABSDIR}"
echo "./${SCRIPTNAME}"
exit 1
fi
}
# make sure systemd directory exists
ensure_systemd_as_user_dir_exists () {
[[ -d ${HOME}/.config/systemd/user/ ]] || mkdir -p ${HOME}/.config/systemd/user/
}
# sed or die trying
sed_in_place () {
grep -q "${1}" "${3}"
if [ $? -eq 0 ]; then
sed -i -e "s|${1}|${2}|g" ${3}
else
echo "Pattern ${1} not found in file ${3}, exiting."
exit 1
fi
}
# check: systemd unit exists
check_systemd_unit_exists () {
systemctl --user cat -- ${1} &> /dev/null
}
# check if variable is empty
check_variable_is_empty () {
[[ -z ${!1} ]]
}
# ensure variable is defined
ensure_variable_is_defined () {
if check_variable_is_empty ${1}; then
echo "Error : variable ${1} must be defined"
exit 1
fi
}
# ensure all variables are defined
ensure_variables_are_defined () {
for i in ${1}; do
ensure_variable_is_defined $i
done
}
# ok if systemd unit file {1} exists
ensure_systemd_unit_exists () {
if ! check_systemd_unit_exists ${1}; then
echo "ERROR : systemd unit ${1} does not exists!"
exit 1
else
return 0
fi
}
# ok if systemd unit file {1} does not exists
ensure_systemd_unit_not_exists () {
if check_systemd_unit_exists ${1}; then
echo "ERROR : systemd unit ${1} exists!"
exit 1
else
return 0
fi
}
# check: systemd unit running
check_systemd_unit_running () {
systemctl --user is-active --quiet service ${1}
}
# ok if systemd unit {1} is running
ensure_systemd_unit_running () {
if ! check_systemd_unit_running ${1}; then
echo "ERROR : systemd unit ${1} is not running!"
exit 1
else
return 0
fi
}
# ok if systemd unit {1} is NOT running
ensure_systemd_unit_not_running () {
if check_systemd_unit_running ${1}; then
echo "ERROR : systemd unit ${1} is running!"
exit 1
else
return 0
fi
}
# check: container $1 exists?
check_container_exists () {
podman container exists ${1}
}
# ok if container exists
ensure_container_exists () {
if ! check_container_exists ${1}; then
echo "ERROR : container ${1} does not exists"
exit 1
else
return 0
fi
}
# ok if container does not exists
ensure_container_not_exists () {
if check_container_exists ${1}; then
echo "ERROR : container ${1} exists"
exit 1
else
return 0
fi
}
# check: container ${1} is running?
check_container_running () {
[[ "podman container inspect -f '{{.State.Status}}' ${1}" == "running" ]]
}
# ok if container is running
ensure_container_running () {
if ! check_container_running ${1}; then
echo "ERROR : container ${1} is not running"
exit 1
else
return 0
fi
}
# ok if container is not running
ensure_container_not_running () {
if check_container_running ${1}; then
echo "ERROR : container ${1} is running"
exit 1
else
return 0
fi
}
# check: pod $1 exists?
check_pod_exists () {
podman pod exists ${1}
}
# ok if pod exists
ensure_pod_exists () {
if ! check_pod_exists ${1}; then
echo "ERROR : pod ${1} does not exists"
exit 1
else
return 0
fi
}
# ok if pod does not exists
ensure_pod_not_exists () {
if check_pod_exists ${1}; then
echo "ERROR : pod ${1} exists"
exit 1
else
return 0
fi
}
# check: pod ${1} is running?
check_pod_running () {
[[ "podman pod inspect -f '{{.State}}' ${1}" == "Running" ]]
}
# ok if pod is running
ensure_pod_running () {
if ! check_pod_running ${1}; then
echo "ERROR : pod ${1} is not running"
exit 1
else
return 0
fi
}
# ok if pod is not running
ensure_pod_not_running () {
if check_pod_running ${1}; then
echo "ERROR : pod ${1} is running"
exit 1
else
return 0
fi
}