#!/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}" }