40 lines
1.7 KiB
Bash
Executable File
40 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Source (bash or zsh) to export the shared server config from ../.env
|
|
# (relative to this script):
|
|
# PAPER_VERSION, PAPER_BUILD, MINECRAFT_SERVER_PATH, MINECRAFT_SERVER_JAR, MINECRAFT_BACKUP_PATH
|
|
|
|
_setup_env_self="${BASH_SOURCE[0]:-${(%):-%x}}"
|
|
_setup_env_root="$(cd "$(dirname "$_setup_env_self")/.." && pwd)"
|
|
_setup_env_file="${MINECRAFT_ENV_FILE:-$_setup_env_root/.env}"
|
|
|
|
if [[ -f "$_setup_env_file" ]]; then
|
|
while IFS= read -r _line || [[ -n "$_line" ]]; do
|
|
_line="${_line%$'\r'}"
|
|
[[ "$_line" =~ ^[[:space:]]*(#|$) ]] && continue
|
|
_key="${_line%%=*}"
|
|
_value="${_line#*=}"
|
|
_key="${_key//[[:space:]]/}"
|
|
[[ "$_key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]] || continue
|
|
_value="${_value#\"}"; _value="${_value%\"}"
|
|
_value="${_value#\'}"; _value="${_value%\'}"
|
|
eval "_current=\"\${$_key:-}\""
|
|
[[ -z "$_current" ]] && export "$_key=$_value"
|
|
done < "$_setup_env_file"
|
|
fi
|
|
|
|
PAPER_VERSION="${PAPER_VERSION:-}"
|
|
PAPER_BUILD="${PAPER_BUILD:-}"
|
|
MINECRAFT_SERVER_PATH="${MINECRAFT_SERVER_PATH:-MCServer}"
|
|
MINECRAFT_SERVER_PATH="${MINECRAFT_SERVER_PATH/#\~/$HOME}"
|
|
[[ "$MINECRAFT_SERVER_PATH" == /* ]] || MINECRAFT_SERVER_PATH="$_setup_env_root/$MINECRAFT_SERVER_PATH"
|
|
MINECRAFT_BACKUP_PATH="${MINECRAFT_BACKUP_PATH:-backups}"
|
|
MINECRAFT_BACKUP_PATH="${MINECRAFT_BACKUP_PATH/#\~/$HOME}"
|
|
[[ "$MINECRAFT_BACKUP_PATH" == /* ]] || MINECRAFT_BACKUP_PATH="$_setup_env_root/$MINECRAFT_BACKUP_PATH"
|
|
|
|
if [[ -z "${MINECRAFT_SERVER_JAR:-}" && -n "$PAPER_VERSION" && -n "$PAPER_BUILD" ]]; then
|
|
MINECRAFT_SERVER_JAR="paper-${PAPER_VERSION}-${PAPER_BUILD}.jar"
|
|
fi
|
|
|
|
export PAPER_VERSION PAPER_BUILD MINECRAFT_SERVER_PATH MINECRAFT_SERVER_JAR MINECRAFT_BACKUP_PATH
|
|
unset _setup_env_self _setup_env_root _setup_env_file _line _key _value _current
|