Merge ip_feature with main #1

Merged
LinuxSquare merged 3 commits from ip_feature into main 2024-03-11 18:31:35 +01:00
6 changed files with 34 additions and 12 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
pms-cli.json
containers/

View file

@ -3,5 +3,6 @@
"build": 1,
"software": "x",
"release": "latest",
"version": "1"
"version": "1",
"podman_network": "x"
}

12
pms-cli
View file

@ -21,11 +21,11 @@ operations:
$(basename ${0}) {-h --help}
$(basename ${0}) {-V --version}
$(basename ${0}) {-v --verbose}
$(basename ${0}) {--init} [servername]
$(basename ${0}) {--init} [servername] [network name]
$(basename ${0}) {--datapack} [servername] [datapack dl url]
$(basename ${0}) {--start} [servername] [port]
$(basename ${0}) {--start} [servername] [port] (ip)
$(basename ${0}) {--stop} [servername]
$(basename ${0}) {--restart} [servername] [port]
$(basename ${0}) {--restart} [servername] [port] (ip)
$(basename ${0}) {--attach} [servername]
$(basename ${0}) {--reset} [servername]"
}
@ -68,7 +68,7 @@ while true; do
;;
--init)
shift
init "$1"
init "$1" "$3"
;;
--datapack)
shift
@ -76,7 +76,7 @@ while true; do
;;
--start)
shift
start "$1" "$3"
start "$1" "$3" "$4"
;;
--stop)
shift
@ -85,7 +85,7 @@ while true; do
--restart)
shift
stop "$1"
start "$1" "$3"
start "$1" "$3" "$4"
;;
--attach)
shift

View file

@ -1,6 +1,7 @@
#!/usr/bin/env bash
function init() {
createNetwork "$2"
if [[ -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then
log e "Directory '${1}' already exists"
exit 1
@ -9,11 +10,12 @@ function init() {
local newdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
mkdir -p "${newdir}/data/world/datapacks"
populateConfig "${newdir}/config.json"
populateConfig "${newdir}/config.json" "$2"
}
function populateConfig() {
local config="$1"
local network_name="$2"
local runnertype
local build
@ -118,5 +120,5 @@ function populateConfig() {
;;
esac
jq "(.type=\"$runnertype\")|(.build=$build)|(.software=\"$software\")|(.release=\"$release\")|(.version=\"$version\")" ${TEMPLATEDIR}/config.json > "$config"
jq "(.type=\"$runnertype\")|(.build=$build)|(.software=\"$software\")|(.release=\"$release\")|(.version=\"$version\")|(.podman_network=\"$network_name\")" ${TEMPLATEDIR}/config.json > "$config"
}

View file

@ -93,7 +93,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
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
[[ $? -eq 0 ]] && log s "Container '$1' started!"
}
@ -107,3 +107,20 @@ function stopContainer() {
podman container stop --time 100 $1
log s "Container '$1' stopped"
}
##
# create a podman network
#
# $1 - string: network-name
##
function createNetwork() {
if [[ -z "$1" ]]; then
log e "Network name is unspecified. Please provide a network-name"
exit 1
fi
if [[ -n $(podman network ls | grep "$1") ]]; then
log w "Network '$1' exists already, won't create!"
return 1
fi
podman network create "$1"
}

View file

@ -16,6 +16,7 @@ function start() {
local software="$(getLocalConfValue $dir 'software')"
local version="$(getLocalConfValue $dir 'version')"
local build="$(getLocalConfValue $dir 'build')"
local podman_network="$(getLocalConfValue $dir 'podman_network')"
case "$(getLocalConfValue $dir 'type')" in
"server")
@ -44,6 +45,6 @@ function start() {
fi
fi
log i "Starting container '$1' with image '$version/$software:$build' on port '$2'"
startContainer "$1" "$version/$software:$build" "$2"
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"
}