From 8a8be87279db46c5d50aedcb51b0ef2371c3484d Mon Sep 17 00:00:00 2001 From: Spartan322 Date: Mon, 17 Jul 2023 15:39:41 -0400 Subject: Update to Godot 4.1.1 Stable Release Add bash-based Godot URL environment variable handling to openvic-env action Sets GODOT_LINUX_URL and GODOT_TEMPLATE_URL according to GODOT_BASE_URL, GODOT_VERSION, and GODOT_VERSION_TYPE Handles downloads.tuxfamily.org/godotengine and github.com/godotengine differently Errors if GODOT_LINUX_URL or GODOT_TEMPLATE_URL are not set or if links do not exist Will not override GODOT_LINUX_URL if previously set Will not override GODOT_TEMPLATE_URL if previously set --- .github/actions/openvic-env/url-environment.sh | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 .github/actions/openvic-env/url-environment.sh (limited to '.github/actions/openvic-env/url-environment.sh') diff --git a/.github/actions/openvic-env/url-environment.sh b/.github/actions/openvic-env/url-environment.sh new file mode 100755 index 0000000..352218b --- /dev/null +++ b/.github/actions/openvic-env/url-environment.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# $1 = environment name +# $2 = value to set environment +set_var() { + if [[ -z ${!1+set} ]]; then + export $1=$2 + fi +} + +# $1 = left side +# $2 = right side +# returns $1 and $2 joined together with a single '/'' +join_path() { + result=$1 + if [[ $result == *"/" && $2 == "/"* ]]; then + result=${result%/} + fi + if [[ $result != *"/" && $2 != "/"* ]]; then + result="$result/" + fi + echo "$result$2" +} + +# $1 = environment name +set_github_var() { + if [ "${!1}" == "" ]; then + echo "::error::$1 environment variable has not been set." + elif ! curl -o /dev/null --head --silent --fail "${!1}"; then + echo "::error::${!1} does not exist." + else + echo "$1=${!1}" >> $GITHUB_ENV + fi +} + +if [[ $GODOT_BASE_DOWNLOAD_URL == *"downloads.tuxfamily.org/godotengine"* ]]; then + if [[ $GODOT_BASE_DOWNLOAD_URL != *"${GODOT_VERSION}"* ]]; then + GODOT_BASE_DOWNLOAD_URL="$(join_path ${GODOT_BASE_DOWNLOAD_URL} ${GODOT_VERSION})" + fi + if [[ $GODOT_VERSION_TYPE != "stable" ]]; then + GODOT_BASE_DOWNLOAD_URL="$(join_path ${GODOT_BASE_DOWNLOAD_URL} ${GODOT_VERSION_TYPE})" + fi + set_var GODOT_LINUX_URL "$(join_path ${GODOT_BASE_DOWNLOAD_URL} "Godot_v${GODOT_VERSION}-${GODOT_VERSION_TYPE}_linux.x86_64.zip")" + set_var GODOT_TEMPLATE_URL "$(join_path ${GODOT_BASE_DOWNLOAD_URL} "Godot_v${GODOT_VERSION}-${GODOT_VERSION_TYPE}_export_templates.tpz")" +elif [[ $GODOT_BASE_DOWNLOAD_URL == *"github.com/godotengine"* ]]; then + if [[ $GODOT_BASE_DOWNLOAD_URL != *"/releases"* ]]; then + GODOT_BASE_DOWNLOAD_URL=$(join_path $GODOT_BASE_DOWNLOAD_URL "releases") + fi + if [[ $GODOT_BASE_DOWNLOAD_URL != *"/download"* ]]; then + GODOT_BASE_DOWNLOAD_URL=$(join_path $GODOT_BASE_DOWNLOAD_URL "download") + fi + set_var GODOT_LINUX_URL "$(join_path ${GODOT_BASE_DOWNLOAD_URL} "${GODOT_VERSION}-${GODOT_VERSION_TYPE}/Godot_v${GODOT_VERSION}-${GODOT_VERSION_TYPE}_linux.x86_64.zip")" + set_var GODOT_TEMPLATE_URL "$(join_path ${GODOT_BASE_DOWNLOAD_URL} "${GODOT_VERSION}-${GODOT_VERSION_TYPE}/Godot_v${GODOT_VERSION}-${GODOT_VERSION_TYPE}_export_templates.tpz")" +fi + +set_github_var GODOT_LINUX_URL +set_github_var GODOT_TEMPLATE_URL \ No newline at end of file -- cgit v1.2.3-56-ga3b1