#!/usr/bin/env bash function server_help() { usage_general cat< '${version}/${software}:${build}'" buildImage "${software}" "${version}" "${build}" "${software_url}/versions/${version}/builds/${build}" fi fi fi fi log i "Starting container '${1}' with image '${version}/${software}:${build}' on port '$([[ -n "${3}" ]] && echo ${3}:)${2}'" startContainer "${1}" "${version}/${software}:${build}" "${2}" "${3}" "${podman_network}" } function server_stop() { if [[ -z $(podman container ps | grep "${1}") ]]; then log w "Container '${1}' is not running!" return 1 fi log i "Stopping container '${1}'" stopContainer "${1}" } function server_restart() { server_stop "${1}" server_start "${1}" "${2}" "${3}" } function server_attach() { if [[ -z $(podman container ps | grep "${1}") ]]; then log e "Container '${1}' is not running!" exit 1 fi log i "Attaching to container '${1}'" podman container attach "${1}" } function server_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 an unrecoverable process): " deleteDataDir case "${deleteDataDir}" in "N"|"n") log e "Aborted by user!" exit 1 ;; esac done local backedup=false if [[ -n $(find "${datapack_dir}" -maxdepth 1 -type f) ]]; then while [[ ! ${backupDatapacksAns} =~ [YyNn] ]]; do read -p "Do you want to backup the datapack .zip found in ${datapack_dir} ?: " backupDatapacksAns case "${backupDatapacksAns}" in "Y"|"y") local backedup=true local tempdir=$(mktemp -d /tmp/pms-cli.XXXXXX) mv ${datapack_dir}/*.zip ${tempdir}/ ;; esac done fi rm -rf "${dir}/data" mkdir -p "${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!" } function server_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 really 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!" }