diff options
author | Brenton Horne | 2023-01-10 23:06:06 +1000 |
---|---|---|
committer | Brenton Horne | 2023-01-10 23:06:06 +1000 |
commit | 72f697e15af59c0756a47aecb4d1e2874d565d0e (patch) | |
tree | 08dbd96c228be885e72c3b23c68b52809b4380cf /openra-sa | |
download | aur-openra-sa-git.tar.gz |
Initial commit
Diffstat (limited to 'openra-sa')
-rwxr-xr-x | openra-sa | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/openra-sa b/openra-sa new file mode 100755 index 000000000000..b7e79307d7ef --- /dev/null +++ b/openra-sa @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e +command -v mono >/dev/null 2>&1 || { echo >&2 "The OpenRA mod SDK requires mono."; exit 1; } +if command -v python3 >/dev/null 2>&1; then + PYTHON="python3" +else + command -v python >/dev/null 2>&1 || { echo >&2 "The OpenRA mod SDK requires python."; exit 1; } + PYTHON="python" +fi + +require_variables() { + missing="" + for i in "$@"; do + eval check="\$$i" + [ -z "${check}" ] && missing="${missing} ${i}\n" + done + if [ ! -z "${missing}" ]; then + echo "Required mod.config variables are missing:\n${missing}Repair your mod.config (or user.config) and try again." + exit 1 + fi +} + +TEMPLATE_LAUNCHER=$(${PYTHON} -c "import os; print(os.path.realpath('$0'))") +PRELIM_MOD_ID=$(echo $TEMPLATE_LAUNCHER | cut -d '/' -f 4) +TEMPLATE_ROOT=/usr/lib/$PRELIM_MOD_ID +MOD_SEARCH_PATHS="${TEMPLATE_ROOT}/mods,./mods" + +# shellcheck source=mod.config +. "${TEMPLATE_ROOT}/mod.config" + +if [ -f "${TEMPLATE_ROOT}/user.config" ]; then + # shellcheck source=user.config + . "${TEMPLATE_ROOT}/user.config" +fi + +require_variables "MOD_ID" "ENGINE_VERSION" "ENGINE_DIRECTORY" +cd "${TEMPLATE_ROOT}" +if [ ! -f "${ENGINE_DIRECTORY}/bin/OpenRA.dll" ] || [ "$(cat "${ENGINE_DIRECTORY}/VERSION")" != "${ENGINE_VERSION}" ]; then + echo "Required engine files not found." + echo "Run \`make\` in the mod directory to fetch and build the required files, then try again."; + exit 1 +fi + +if command -v mono >/dev/null 2>&1 && [ "$(grep -c .NETCoreApp,Version= ${ENGINE_DIRECTORY}/bin/OpenRA.dll)" = "0" ]; then + RUNTIME_LAUNCHER="mono --debug" +else + RUNTIME_LAUNCHER="dotnet" +fi + +cd "${ENGINE_DIRECTORY}" +${RUNTIME_LAUNCHER} bin/OpenRA.dll Engine.EngineDir=".." Engine.LaunchPath="${TEMPLATE_LAUNCHER}" "Engine.ModSearchPaths=${MOD_SEARCH_PATHS}" Game.Mod="${MOD_ID}" "$@" |