pms-cli/utils/start
LinuxSquare c443106584 Add delete function
* Fixed missing ! in error messages
2024-03-16 17:50:53 +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"
}