diff --git a/pms-cli b/pms-cli index 30f267f..9877993 100755 --- a/pms-cli +++ b/pms-cli @@ -27,12 +27,13 @@ operations: $(basename ${0}) {--stop} [servername] $(basename ${0}) {--restart} [servername] [port] (ip) $(basename ${0}) {--attach} [servername] - $(basename ${0}) {--reset} [servername]" + $(basename ${0}) {--reset} [servername] + $(basename ${0}) {--delete} [servername]" } function version() { echo -e "Minecraft Podman Server v${PKGVER} -Copyright (C) 2023 Noveria Network +Copyright (C) 2024 Noveria Network This program may be freely redistributed under the terms of the ${LICENSE}" @@ -43,7 +44,7 @@ the terms of the ${LICENSE}" ### OPT_SHORT="hVv" -OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:" +OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:" TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@") if [ "$?" != 0 ]; then @@ -96,6 +97,11 @@ while true; do stop "$1" reset "$1" ;; + --delete) + shift + stop "$1" + delete "$1" + ;; --) shift break diff --git a/utils/datapack b/utils/datapack index cf10585..a8ee104 100644 --- a/utils/datapack +++ b/utils/datapack @@ -2,7 +2,7 @@ function datapack() { if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then - log e "Directory '${1}' does not exist" + log e "Directory '${1}' does not exist!" exit 1 fi diff --git a/utils/delete b/utils/delete new file mode 100644 index 0000000..e90d56a --- /dev/null +++ b/utils/delete @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +function delete() { + if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then + log e "Directory '${1}' does not exist!" + exit 1 + fi + + local delDir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}" + + while [[ ! $deleteAns =~ [YyNn] ]]; do + read -p "Do you reasly want to delete the complete directory located in ${delDir} ? (This is an unrecoverable process): " deleteAns + case "$deleteAns" in + "N"|"n") + log e "Aborted by user!" + exit 1 + ;; + esac + done + + rm -rf "$delDir" + log s "Server '$1' deleted!" +} diff --git a/utils/init b/utils/init index bde34f4..40362f4 100644 --- a/utils/init +++ b/utils/init @@ -3,7 +3,7 @@ function init() { createNetwork "$2" if [[ -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then - log e "Directory '${1}' already exists" + log e "Directory '${1}' already exists!" exit 1 fi diff --git a/utils/podman b/utils/podman index 60fb740..f2d9dd7 100644 --- a/utils/podman +++ b/utils/podman @@ -115,7 +115,7 @@ function stopContainer() { ## function createNetwork() { if [[ -z "$1" ]]; then - log e "Network name is unspecified. Please provide a network-name" + log e "Network name is unspecified. Please provide a network-name!" exit 1 fi if [[ -n $(podman network ls | grep "$1") ]]; then diff --git a/utils/reset b/utils/reset index b2712d9..203e7e8 100644 --- a/utils/reset +++ b/utils/reset @@ -2,7 +2,7 @@ function reset() { if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then - log e "Directory '${1}' does not exist" + log e "Directory '${1}' does not exist!" exit 1 fi @@ -10,7 +10,7 @@ function reset() { 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 + read -p "Do you want to reset the complete data dir located in ${dir}/data ? (This is an unrecoverable process): " deleteDataDir case "$deleteDataDir" in "N"|"n") log e "Aborted by user!" diff --git a/utils/start b/utils/start index 60b575e..f6882d4 100644 --- a/utils/start +++ b/utils/start @@ -2,7 +2,7 @@ function start() { if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then - log e "Directory '${1}' does not exist" + log e "Directory '${1}' does not exist!" exit 1 fi