From 6593dabf426ad3e046bdf4eeff37614f3cedc2eb Mon Sep 17 00:00:00 2001 From: LinuxSquare Date: Sat, 16 Mar 2024 20:44:57 +0100 Subject: [PATCH] Add additional_ports configlet --- .template/config.json | 4 +++- pms-cli | 24 ++++++++++++------------ utils/attach | 4 ++-- utils/podman | 4 +++- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.template/config.json b/.template/config.json index 3cce315..dcce47d 100644 --- a/.template/config.json +++ b/.template/config.json @@ -4,5 +4,7 @@ "software": "x", "release": "latest", "version": "1", - "podman_network": "x" + "podman_network": "x", + "additional_ports": [ + ] } diff --git a/pms-cli b/pms-cli index 9877993..7afdfc5 100755 --- a/pms-cli +++ b/pms-cli @@ -3,7 +3,7 @@ # CONSTANTS readonly PKGVER="0.2.4" readonly LICENSE="GNU AGPLv3" -readonly ROOTPATH="$(dirname $(readlink -f $(which $0)))" +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" @@ -55,7 +55,7 @@ fi eval set -- "$TEMP" while true; do - case "$1" in + case "${1}" in -h|--help) usage exit 0 @@ -69,33 +69,33 @@ while true; do ;; --init) shift - init "$1" "$3" + init "${1}" "${3}" ;; --datapack) shift - datapack "$1" "$3" + datapack "${1}" "${3}" ;; --start) shift - start "$1" "$3" "$4" + start "${1}" "${3}" "${4}" ;; --stop) shift - stop "$1" + stop "${1}" ;; --restart) shift - stop "$1" - start "$1" "$3" "$4" + stop "${1}" + start "${1}" "${3}" "${4}" ;; --attach) shift - attach "$1" + attach "${1}" ;; --reset) shift - stop "$1" - reset "$1" + stop "${1}" + reset "${1}" ;; --delete) shift @@ -107,7 +107,7 @@ while true; do break ;; *) - log w "$1 is not a valid parameter. Please refer to '$(basename ${0}) -h' for help!" + log w "${1} is not a valid parameter. Please refer to '$(basename ${0}) -h' for help!" break ;; esac diff --git a/utils/attach b/utils/attach index 945b76b..d9ed871 100644 --- a/utils/attach +++ b/utils/attach @@ -1,8 +1,8 @@ #!/usr/bin/env bash function attach() { - if [[ -z $(podman container ps | grep "$1") ]]; then - log e "Container '$1' is not running!" + if [[ -z $(podman container ps | grep "${1}") ]]; then + log e "Container '${1}' is not running!" exit 1 fi log i "Attaching to container '$1'" diff --git a/utils/podman b/utils/podman index f2d9dd7..2a695e1 100644 --- a/utils/podman +++ b/utils/podman @@ -93,7 +93,9 @@ function buildImage() { ## function startContainer() { log d "Starting container '$1'" - podman run --name "$1" --userns=keep-id:uid=1000 --rm -it -d --network "$5" -p $([[ -n "$4" ]] && echo ${4}:)$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 + readarray -t additional_ports <<< "$(getLocalConfValue $(getValueByKey 'PODMAN_DIRECTORY')/${1} 'additional_ports[]')" + [[ ${#additional_ports} -gt 0 ]] && log d "Starting with additional ports: ${additional_ports[@]}" + podman run --name "${1}" --userns=keep-id:uid=1000 --rm -it -d --network "${5}" -p $([[ -n "${4}" ]] && echo ${4}:)${3}:25565 $([[ ${#additional_ports} -gt 0 ]] && for port in "${additional_ports[@]}"; do echo "-p $([[ -n ${4} ]] && echo ${4}:)${port}:${port}"; done) -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!" }