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
|
||||
|
||||
# CONSTANTS
|
||||
readonly PKGVER="0.1.1"
|
||||
readonly PKGVER="0.2.0"
|
||||
readonly LICENSE="GNU AGPLv3"
|
||||
readonly ROOTPATH="$(dirname $(readlink -f $(which $0)))"
|
||||
readonly TEMPLATEDIR="${ROOTPATH}/.template"
|
||||
|
@ -26,7 +26,8 @@ operations:
|
|||
$(basename ${0}) {--start} [servername] [port]
|
||||
$(basename ${0}) {--stop} [servername]
|
||||
$(basename ${0}) {--restart} [servername] [port]
|
||||
$(basename ${0}) {--attach} [servername]"
|
||||
$(basename ${0}) {--attach} [servername]
|
||||
$(basename ${0}) {--reset} [servername]"
|
||||
}
|
||||
|
||||
function version() {
|
||||
|
@ -42,7 +43,7 @@ the terms of the ${LICENSE}"
|
|||
###
|
||||
|
||||
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}) -- "$@")
|
||||
if [ "$?" != 0 ]; then
|
||||
|
@ -90,6 +91,10 @@ while true; do
|
|||
shift
|
||||
attach "$1"
|
||||
;;
|
||||
--reset)
|
||||
shift
|
||||
reset "$1"
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
|
|
|
@ -78,6 +78,7 @@ function buildImage() {
|
|||
|
||||
log d "building docker image"
|
||||
podman build --rm "${BUILDDIR}" --tag "${2}/${1}:${3}"
|
||||
[[ $? -eq 0 ]] && log s "Image '${2}/${1}:${3}' built!"
|
||||
|
||||
log d "removing temporary build-dir"
|
||||
[[ -f "${BUILDDIR}" ]] && rm -rf "${BUILDDIR}"
|
||||
|
@ -93,6 +94,7 @@ function buildImage() {
|
|||
function startContainer() {
|
||||
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
|
||||
[[ $? -eq 0 ]] && log s "Container '$1' started!"
|
||||
}
|
||||
|
||||
##
|
||||
|
@ -103,4 +105,5 @@ function startContainer() {
|
|||
function stopContainer() {
|
||||
log d "Stopping container '$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() {
|
||||
if [[ -z $(podman container ps | grep "$1") ]]; then
|
||||
log e "Container '$1' is not running!"
|
||||
exit 1
|
||||
log w "Container '$1' is not running!"
|
||||
return 1
|
||||
fi
|
||||
log i "Stopping container '$1'"
|
||||
stopContainer "$1"
|
||||
|
|
Loading…
Reference in a new issue