pms-cli/utils/start
LinuxSquare f69788df94 Merge ip_feature with main (#1)
This branch adds the ability to define the binding ip as an extra parameter.
Tested and working

Reviewed-on: #1
Co-authored-by: LinuxSquare <linuxscripting.sh@gmail.com>
Co-committed-by: LinuxSquare <linuxscripting.sh@gmail.com>
2024-03-11 18:31:34 +01:00

50 lines
1.9 KiB
Bash

#!/usr/bin/env bash
function start() {
if [[ ! -d "$(getValueByKey 'PODMAN_DIRECTORY')/${1}" ]]; then
log e "Directory '${1}' does not exist"
exit 1
fi
if [[ -z "$2" ]]; then
log e "You have to specify a port, on which the server listens!"
exit 1
fi
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
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")
local software_url="$(getValueByKey SERVERRUNNERS.${software})"
;;
"proxy")
local software_url="$(getValueByKey PROXYRUNNERS.${software})"
;;
esac
if [[ $(checkImage "$software" "$version" "$build") == false ]]; then
log i "Building image '$version/$software:$build'"
buildImage "$software" "$version" "$build" "$software_url/versions/$version/builds/$build"
else
if [[ "$(getLocalConfValue $dir 'release')" == "latest" ]]; then
if [[ $(checkUpdate "$software" "$version" "$build" "$(getLocalConfValue $dir 'type')") == true ]]; then
log w "Update for '$software/$version:$build' is available."
updateBuild "$software" "$version" "$dir" "$(getLocalConfValue $dir 'type')"
local oldbuild="$build"
build="$(getLocalConfValue $dir 'build')"
if [[ $(checkImage "$software" "$version" "$build") == false ]]; then
log i "Updating image '$version/$software:$oldbuild' => '$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"
}