Files
MCDRServer/run.sh
2025-12-04 05:16:03 +08:00

59 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
##############################################################################
# MCDReforged Launch Script (UV Managed)
# Function: Standardize MCDReforged startup with UV package manager
##############################################################################
# ======================== Customizable Configuration ========================
UV_CMD="${UV_CMD:-uv}"
MCDR_ARGS="${MCDR_ARGS:-}"
LOG_FILE="${LOG_FILE:-}"
# ================================ Script Logic ==============================
set -euo pipefail
# Check UV dependency
if ! command -v "$UV_CMD" &> /dev/null; then
echo "ERROR: UV package manager not found." >&2
exit 1
fi
# Check MCDReforged installation
if ! "$UV_CMD" pip list | grep -q "mcdreforged" &> /dev/null; then
echo "WARNING: MCDReforged not found in UV managed packages"
echo "Installing MCDReforged via UV..."
"$UV_CMD" install mcdreforged
fi
# Print UV & MCDReforged version
UV_VERSION="$("$UV_CMD" self version | head -n 1 | awk '{print $2}')"
MCDR_VERSION="$("$UV_CMD" run mcdreforged --version 2>&1 | awk '{print $2}')"
echo "INFO: UV Version: $UV_VERSION"
echo "INFO: MCDReforged Version: $MCDR_VERSION"
echo ""
# Construct launch command
RUN_COMMAND="$UV_CMD run mcdreforged $MCDR_ARGS"
# Add log redirection if specified
if [ -n "$LOG_FILE" ]; then
RUN_COMMAND="$RUN_COMMAND >> $LOG_FILE 2>&1"
echo "INFO: Log will be redirected to: $LOG_FILE"
echo ""
fi
# Print startup info
echo "=================================================="
echo " MCDReforged Launch Script v1.0"
echo "=================================================="
echo "Startup Time: $(date +'%Y-%m-%d %H:%M:%S')"
echo "UV Command: $UV_CMD"
echo "MCDR Args: $MCDR_ARGS"
echo "Launch Command: $RUN_COMMAND"
echo "=================================================="
echo "Starting MCDReforged ..."
echo ""
# Execute launch command
exec bash -c "$RUN_COMMAND"