#!/bin/bash set -eu # shellcheck source=start-utils . "${SCRIPTS:-/}start-utils" resultsFile=/data/.install-modrinth.env : "${MODRINTH_MODPACK:=${MODRINTH_PROJECT:-}}" : "${MODRINTH_LOADER:=}" : "${MODRINTH_VERSION:=${MODRINTH_VERSION_ID:-}}" : "${MODRINTH_IGNORE_MISSING_FILES:=}" : "${MODRINTH_EXCLUDE_FILES:=}" : "${MODRINTH_FORCE_INCLUDE_FILES:=}" : "${MODRINTH_OVERRIDES_EXCLUSIONS:=}" if [[ ! $MODRINTH_MODPACK ]]; then log "ERROR: MODRINTH_MODPACK must be set when using TYPE/MOD_PLATFORM of MODRINTH" exit 1 fi isDebugging && set -x ensureRemoveAllModsOff "MOD_PLATFORM=MODRINTH" args=( --results-file="$resultsFile" --project="${MODRINTH_MODPACK}" --output-directory=/data ) if [[ $MODRINTH_IGNORE_MISSING_FILES ]]; then args+=(--ignore-missing-files "$MODRINTH_IGNORE_MISSING_FILES") fi case "${VERSION^^}" in LATEST) : "${MODRINTH_DEFAULT_VERSION_TYPE:=release}" ;; SNAPSHOT) : "${MODRINTH_DEFAULT_VERSION_TYPE:=beta}" ;; *) : "${MODRINTH_DEFAULT_VERSION_TYPE:=release}" args+=("--game-version=$VERSION") ;; esac setArg() { arg="${1?}" var="${2?}" if [[ ${!var} ]]; then args+=("${arg}=${!var}") fi } setArg --loader MODRINTH_LOADER setArg --version MODRINTH_VERSION setArg --default-version-type MODRINTH_DEFAULT_VERSION_TYPE setArg --exclude-files MODRINTH_EXCLUDE_FILES setArg --force-include-files MODRINTH_FORCE_INCLUDE_FILES setArg --overrides-exclusions MODRINTH_OVERRIDES_EXCLUSIONS if ! mc-image-helper install-modrinth-modpack "${args[@]}"; then log "ERROR failed to install Modrinth modpack" exit 1 fi # grab SERVER, TYPE, VERSION and export it set -a # shellcheck disable=SC1090 source "${resultsFile}" set +a resolveFamily exec "${SCRIPTS:-/}start-setupWorld" "$@"