#!/usr/bin/env bash
# Start wrapper (repo-level). Prefers installed runtime under INSTALL_TARGET if present.
set -euo pipefail
SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# If an installed runtime exists under INSTALL_TARGET use that first
if [ -n "${INSTALL_TARGET:-}" ] && [ -x "$INSTALL_TARGET/bin/start.sh" ]; then
exec "$INSTALL_TARGET/bin/start.sh" "$@"
fi
# Default install location is the user's home MCPServer
VENV_DIR="${VENV:-$SRC_DIR/venv}"
INSTALL_DIR="${INSTALL_DIR:-$HOME/MCPServer}"
# Ensure standard runtime dirs exist under the install dir
mkdir -p "$INSTALL_DIR/logs" "$INSTALL_DIR/run" "$INSTALL_DIR/config"
LOG_DIR="${LOG_DIR:-$INSTALL_DIR/logs}"
LOG_FILE="$LOG_DIR/mcp-server.log"
PIDFILE="${PIDFILE:-$INSTALL_DIR/run/mcp-server.pid}"
PGIDFILE="${PGIDFILE:-$INSTALL_DIR/run/mcp-server.pgid}"
# Create venv if needed
if [ ! -d "$VENV_DIR" ]; then
echo "Creating venv at $VENV_DIR"
#!/usr/bin/env bash
# Repo-level start wrapper.
# Policy: prefer installed runtime under $HOME/MCPServer; do not create a repo venv.
set -euo pipefail
HOME_START="$HOME/MCPServer/bin/start.sh"
# If an explicit install target is provided, use it first
if [ -n "${INSTALL_TARGET:-}" ] && [ -x "$INSTALL_TARGET/bin/start.sh" ]; then
exec "$INSTALL_TARGET/bin/start.sh" "$@"
fi
# Prefer the home install if present
if [ -x "$HOME_START" ]; then
exec "$HOME_START" "$@"
fi
echo "No installed runtime found at $HOME/MCPServer." >&2
echo "Run: ./scripts/setup.sh --target \"$HOME/MCPServer\"" >&2
exit 1
else