86 lines
2.0 KiB
Bash
Raw Permalink Normal View History

2025-10-07 10:59:52 +01:00
#!/usr/bin/env bash
# Start extension registry service
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
# Default values
CONFIG_FILE="${PROJECT_DIR}/config.toml"
PORT=8082
LOG_LEVEL="info"
JSON_LOG=false
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--config)
CONFIG_FILE="$2"
shift 2
;;
--port)
PORT="$2"
shift 2
;;
--log-level)
LOG_LEVEL="$2"
shift 2
;;
--json-log)
JSON_LOG=true
shift
;;
--help)
echo "Usage: $0 [OPTIONS]"
echo ""
echo "Options:"
echo " --config FILE Configuration file (default: config.toml)"
echo " --port PORT Port to listen on (default: 8082)"
echo " --log-level LEVEL Log level (trace|debug|info|warn|error)"
echo " --json-log Enable JSON logging"
echo " --help Show this help"
exit 0
;;
*)
echo "Unknown option: $1"
echo "Use --help for usage information"
exit 1
;;
esac
done
# Check if config file exists
if [[ ! -f "$CONFIG_FILE" ]]; then
echo "Error: Configuration file not found: $CONFIG_FILE"
echo "Create config.toml from config.example.toml"
exit 1
fi
# Build if needed
if [[ ! -f "${PROJECT_DIR}/target/release/extension-registry" ]]; then
echo "Building extension-registry..."
cd "$PROJECT_DIR"
cargo build --release
fi
# Start service
echo "Starting extension-registry service..."
echo " Config: $CONFIG_FILE"
echo " Port: $PORT"
echo " Log level: $LOG_LEVEL"
cd "$PROJECT_DIR"
ARGS=(
--config "$CONFIG_FILE"
--port "$PORT"
--log-level "$LOG_LEVEL"
)
if [[ "$JSON_LOG" == "true" ]]; then
ARGS+=(--json-log)
fi
exec ./target/release/extension-registry "${ARGS[@]}"