Add reset function
This commit is contained in:
parent
5a71c2f44d
commit
9d89bd171b
4 changed files with 64 additions and 5 deletions
11
pms-cli
11
pms-cli
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# CONSTANTS
|
# CONSTANTS
|
||||||
readonly PKGVER="0.1.1"
|
readonly PKGVER="0.2.0"
|
||||||
readonly LICENSE="GNU AGPLv3"
|
readonly LICENSE="GNU AGPLv3"
|
||||||
readonly ROOTPATH="$(dirname $(readlink -f $(which $0)))"
|
readonly ROOTPATH="$(dirname $(readlink -f $(which $0)))"
|
||||||
readonly TEMPLATEDIR="${ROOTPATH}/.template"
|
readonly TEMPLATEDIR="${ROOTPATH}/.template"
|
||||||
|
@ -26,7 +26,8 @@ operations:
|
||||||
$(basename ${0}) {--start} [servername] [port]
|
$(basename ${0}) {--start} [servername] [port]
|
||||||
$(basename ${0}) {--stop} [servername]
|
$(basename ${0}) {--stop} [servername]
|
||||||
$(basename ${0}) {--restart} [servername] [port]
|
$(basename ${0}) {--restart} [servername] [port]
|
||||||
$(basename ${0}) {--attach} [servername]"
|
$(basename ${0}) {--attach} [servername]
|
||||||
|
$(basename ${0}) {--reset} [servername]"
|
||||||
}
|
}
|
||||||
|
|
||||||
function version() {
|
function version() {
|
||||||
|
@ -42,7 +43,7 @@ the terms of the ${LICENSE}"
|
||||||
###
|
###
|
||||||
|
|
||||||
OPT_SHORT="hVv"
|
OPT_SHORT="hVv"
|
||||||
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:"
|
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:"
|
||||||
|
|
||||||
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
|
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
|
||||||
if [ "$?" != 0 ]; then
|
if [ "$?" != 0 ]; then
|
||||||
|
@ -90,6 +91,10 @@ while true; do
|
||||||
shift
|
shift
|
||||||
attach "$1"
|
attach "$1"
|
||||||
;;
|
;;
|
||||||
|
--reset)
|
||||||
|
shift
|
||||||
|
reset "$1"
|
||||||
|
;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
|
|
|
@ -78,6 +78,7 @@ function buildImage() {
|
||||||
|
|
||||||
log d "building docker image"
|
log d "building docker image"
|
||||||
podman build --rm "${BUILDDIR}" --tag "${2}/${1}:${3}"
|
podman build --rm "${BUILDDIR}" --tag "${2}/${1}:${3}"
|
||||||
|
[[ $? -eq 0 ]] && log s "Image '${2}/${1}:${3}' built!"
|
||||||
|
|
||||||
log d "removing temporary build-dir"
|
log d "removing temporary build-dir"
|
||||||
[[ -f "${BUILDDIR}" ]] && rm -rf "${BUILDDIR}"
|
[[ -f "${BUILDDIR}" ]] && rm -rf "${BUILDDIR}"
|
||||||
|
@ -93,6 +94,7 @@ function buildImage() {
|
||||||
function startContainer() {
|
function startContainer() {
|
||||||
log d "Starting container '$1'"
|
log d "Starting container '$1'"
|
||||||
podman run --name "$1" --userns=keep-id:uid=1000 --rm -it -d -p $3:25565 -v $(getValueByKey 'PODMAN_DIRECTORY')/$1/data:/var/server "$2" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565
|
podman run --name "$1" --userns=keep-id:uid=1000 --rm -it -d -p $3:25565 -v $(getValueByKey 'PODMAN_DIRECTORY')/$1/data:/var/server "$2" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565
|
||||||
|
[[ $? -eq 0 ]] && log s "Container '$1' started!"
|
||||||
}
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -103,4 +105,5 @@ function startContainer() {
|
||||||
function stopContainer() {
|
function stopContainer() {
|
||||||
log d "Stopping container '$1'"
|
log d "Stopping container '$1'"
|
||||||
podman container stop --time 100 $1
|
podman container stop --time 100 $1
|
||||||
|
log s "Container '$1' stopped"
|
||||||
}
|
}
|
||||||
|
|
51
utils/reset
Normal file
51
utils/reset
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then
|
||||||
|
log e "Directory '${1}' does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
|
||||||
|
local datapack_dir="$dir/data/world/datapacks"
|
||||||
|
|
||||||
|
while [[ ! $deleteDataDir =~ [YyNn] ]]; do
|
||||||
|
read -p "Do you want to reset the complete data dir located in ${dir}/data ? (This is a unrecoverable process): " deleteDataDir
|
||||||
|
case "$deleteDataDir" in
|
||||||
|
"N"|"n")
|
||||||
|
log e "Aborted by user!"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
local backedup=false
|
||||||
|
while [[ ! $backupDatapacksAns =~ [YyNn] ]]; do
|
||||||
|
read -p "Do you want to backup the datapack .zip found in $datapack_dir ?: " backupDatapacksAns
|
||||||
|
case "$backupDatapacksAns" in
|
||||||
|
"Y"|"y")
|
||||||
|
if [[ -n $(find "${datapack_dir}" -maxdepth 1 -type f) ]]; then
|
||||||
|
local backedup=true
|
||||||
|
local tempdir=$(mktemp -d /tmp/pms-cli.XXXXXX)
|
||||||
|
mv ${datapack_dir}/*.zip ${tempdir}/
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf "$dir/data"
|
||||||
|
mkdir "$dir/data/world/datapacks"
|
||||||
|
|
||||||
|
if [[ "$backedup" == true ]]; then
|
||||||
|
while [[ ! $restoreDatapacksAns =~ [YyNn] ]]; do
|
||||||
|
read -p "You have some backed up datapack .zip in $tempdir. Do you want to restore them now?: " restoreDatapacksAns
|
||||||
|
case "$restoreDatapacksAns" in
|
||||||
|
"Y"|"y")
|
||||||
|
mv ${tempdir}/*.zip "${dir}/data/world/datapacks/"
|
||||||
|
rm -rf "$tempdir"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
log s "Server '$1' resetted!"
|
||||||
|
}
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
if [[ -z $(podman container ps | grep "$1") ]]; then
|
if [[ -z $(podman container ps | grep "$1") ]]; then
|
||||||
log e "Container '$1' is not running!"
|
log w "Container '$1' is not running!"
|
||||||
exit 1
|
return 1
|
||||||
fi
|
fi
|
||||||
log i "Stopping container '$1'"
|
log i "Stopping container '$1'"
|
||||||
stopContainer "$1"
|
stopContainer "$1"
|
||||||
|
|
Loading…
Reference in a new issue