pms-cli/pms-cli
2024-04-21 14:48:19 +02:00

124 lines
2.5 KiB
Bash
Executable file

#!/usr/bin/env bash
# CONSTANTS
readonly PKGVER="0.2.5"
readonly LICENSE="GNU AGPLv3"
readonly ROOTPATH="$(dirname $(readlink -f $(which ${0})))"
readonly TEMPLATEDIR="${ROOTPATH}/.template"
readonly BUILDDIR="$(mktemp -d /tmp/pms-cli.XXXXXX)"
readonly CONFIG="/usr/local/noveria/etc/pms-cli/pms-cli.json"
for util in ${ROOTPATH}/utils/*.sh; do
source ${util}
done
# VARIABLES
declare debuglevel=3
function usage() {
echo -e "usage: $(basename ${0}) <operation> [...]
operations:
$(basename ${0}) {-h --help}
$(basename ${0}) {-V --version}
$(basename ${0}) {-v --verbose}
$(basename ${0}) {--init} [servername] [network name]
$(basename ${0}) {--datapack} [servername] [datapack dl url]
$(basename ${0}) {--start} [servername] [port] (ip)
$(basename ${0}) {--stop} [servername]
$(basename ${0}) {--restart} [servername] [port] (ip)
$(basename ${0}) {--attach} [servername]
$(basename ${0}) {--reset} [servername]
$(basename ${0}) {--delete} [servername]
$(basename ${0}) {--server} [servername] [command]"
}
function version() {
echo -e "Minecraft Podman Server v${PKGVER}
Copyright (C) 2024 Noveria Network
This program may be freely redistributed under
the terms of the ${LICENSE}"
}
###
## SCRIPT START
###
OPT_SHORT="hVv"
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:,server:"
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
if [ "$?" != 0 ]; then
usage
exit 1
fi
eval set -- "${TEMP}"
while true; do
case "${1}" in
-h|--help)
usage
exit 0
;;
-V|--version)
version
exit 0
;;
-v|--verbose)
debuglevel=4
;;
--init)
shift
init "${1}" "${3}"
;;
--datapack)
shift
datapack "${1}" "${3}"
;;
--start)
shift
start "${1}" "${3}" "${4}"
;;
--stop)
shift
stop "${1}"
;;
--restart)
shift
stop "${1}"
start "${1}" "${3}" "${4}"
;;
--attach)
shift
attach "${1}"
;;
--reset)
shift
stop "${1}"
reset "${1}"
;;
--delete)
shift
stop "${1}"
delete "${1}"
;;
--server)
shift
server "${1}" "${3}" "${4}"
;;
--)
shift
break
;;
*)
log w "${1} is not a valid parameter. Please refer to '$(basename ${0}) -h' for help!"
break
;;
esac
shift
done
###
## SCRIPT END
###