Archived
0
This repository has been archived on 2022-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
Files
project-ctl/ctrl.sh
2022-02-17 13:17:32 +03:00

144 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
# vi: set tabstop=4 shiftwidth=4 expandtab :
ROOTDIR=$(cd "$(dirname "$0")" && pwd)
cd $ROOTDIR
# \
# == Constants ============================================================== #
# /
DKRNAME=tools--phpmyadmin
NAME=phpMyAdmin
# \
# == Colors ================================================================= #
# /
CW="\033[1;37m"
CG="\033[0;32m"
CY="\033[0;33m"
NC="\033[0m"
II="${CW}${CG}ctrl${CW}${NC}"
echo -e "${II} ${CY}Container CTRL Script ${CG}b20211219-0247${NC}"
# \
# == Function =============================================================== #
# /
function main {
case "$1" in
'start') fn_start ;;
'stop') fn_stop ;;
'restart') fn_stop && fn_start ;;
'logs') fn_logs ;;
'shell') fn_shell ;;
'backup') fn_backup ;;
'update') fn_update_config ;;
*) echo -e "${II} Use: start, stop, restart, logs, shell, backup, update" ;;
esac
}
# \
# == Fun:Container ========================================================== #
# /
function fn_start {
if [ $(fn_container_check) = 1 ]
then
echo -e "${II} $NAME is runned."
elif [ $(fn_container_check2) = 1 ]
then
echo -e "${II} $NAME container is down. Need restart."
else
echo -e "${II} Start $NAME container..."
local CONTAINER_ID=$(podman run -d \
--name "$DKRNAME" \
--memory '512M' \
--volume /etc/timezone:/etc/timezone:ro \
--volume /etc/localtime:/etc/localtime:ro \
--publish "0.0.0.0:9091:80" \
--env 'PMA_ARBITRARY=1' \
phpmyadmin:5.1.1-apache
)
echo $CONTAINER_ID
fi
}
function fn_stop {
if [ $(fn_container_check) = 1 ]
then
echo -e "${II} Stop $NAME container..."
podman stop $DKRNAME
fi
if [ $(fn_container_check2) = 1 ]
then
echo -e "${II} Remove $NAME container..."
local CONTAINER_ID=$(podman rm $DKRNAME)
echo $CONTAINER_ID
else
echo -e "${II} $NAME not runned."
fi
}
function fn_logs {
if [ $(fn_container_check2) = 1 ]
then
podman logs --tail 10 -f $DKRNAME
else
echo -e "${II} $NAME not exists."
fi
}
function fn_shell {
if [ $(fn_container_check) = 1 ]
then
echo -e "${II} Enter shell in $NAME container..."
podman exec -it $DKRNAME sh
else
echo -e "${II} $NAME not runned."
fi
}
function fn_update_config {
if [ $(fn_container_check) = 1 ]
then
echo -e "${II} Update config $NAME..."
podman kill --signal=HUP $DKRNAME
else
echo -e "${II} $NAME not runned."
fi
}
function fn_container_check {
if [[ -n $(podman ps --filter "name=$DKRNAME" -q) ]]
then
echo 1
else
echo 0
fi
}
function fn_container_check2 {
if [[ -n $(podman ps --filter "name=$DKRNAME" -qa) ]]
then
echo 1
else
echo 0
fi
}
# \
# == Other ================================================================== #
# /
function fn_backup {
BASENAME=$(basename "$(cd "$(dirname "$0")" && pwd)")
ARCHIVE=$BASENAME-$(date +%Y%m%d)
echo -e "${II} Backup..."
tar -cf - -- \
*.sh \
| 7z a -bso0 -si $ARCHIVE.tar.7z
echo -e "${II} $(du -sh $ARCHIVE.tar.7z)"
}
main $@