59 lines
1.9 KiB
Bash
Executable File
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"
|