Merge _configs/ into config/ for single configuration directory. Update all path references. Changes: - Move _configs/* to config/ - Update .gitignore for new patterns - No code references to _configs/ found Impact: -1 root directory (layout_conventions.md compliance)
112 lines
2.7 KiB
Bash
Executable File
112 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install syntaxis-api server with configuration
|
|
#
|
|
# Usage:
|
|
# ./scripts/install-syntaxis-api.sh [--config-dir /path/to/config] [--binary /path/to/binary]
|
|
#
|
|
# This script:
|
|
# 1. Copies the template configuration file to a user-specified location
|
|
# 2. Creates a run-syntaxis-api.sh wrapper script to start the server with the config
|
|
# 3. Shows instructions for starting the server
|
|
|
|
set -e
|
|
|
|
# Parse command line arguments
|
|
CONFIG_DIR="$HOME/.config/syntaxis-api"
|
|
BINARY=""
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--config-dir)
|
|
CONFIG_DIR="$2"
|
|
shift 2
|
|
;;
|
|
--binary)
|
|
BINARY="$2"
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Determine binary path
|
|
if [ -z "$BINARY" ]; then
|
|
PROJECT_ROOT="$(pwd)"
|
|
BINARY="$PROJECT_ROOT/target/release/syntaxis-api"
|
|
fi
|
|
|
|
# Check if binary exists
|
|
if [ ! -f "$BINARY" ]; then
|
|
echo "❌ Binary not found at: $BINARY"
|
|
echo "Please run: cargo build -p syntaxis-api --release"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Using binary: $BINARY"
|
|
|
|
# Create config directory
|
|
mkdir -p "$CONFIG_DIR"
|
|
echo "✓ Created config directory: $CONFIG_DIR"
|
|
|
|
# Get config file path
|
|
CONFIG_FILE="$CONFIG_DIR/syntaxis-api-config.toml"
|
|
|
|
# Check if config already exists
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|
echo "⚠️ Config file already exists at: $CONFIG_FILE"
|
|
read -p "Overwrite? (y/N): " RESPONSE
|
|
if [ "$RESPONSE" != "y" ]; then
|
|
echo "Installation cancelled"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Copy template to config location
|
|
TEMPLATE="syntaxis-api-config.template.toml"
|
|
if [ ! -f "$TEMPLATE" ]; then
|
|
echo "❌ Template not found: $TEMPLATE"
|
|
exit 1
|
|
fi
|
|
|
|
cp "$TEMPLATE" "$CONFIG_FILE"
|
|
echo "✓ Created config file: $CONFIG_FILE"
|
|
|
|
# Create run-syntaxis-api.sh script
|
|
RUN_SCRIPT="$CONFIG_DIR/run-syntaxis-api.sh"
|
|
|
|
cat > "$RUN_SCRIPT" << 'EOF'
|
|
#!/bin/bash
|
|
# Lifecycle API Server Runner
|
|
# Generated by install-syntaxis-api.sh
|
|
#
|
|
# This script starts the syntaxis-api with the configuration file.
|
|
# Edit the configuration file to change settings:
|
|
# nano CONFIG_FILE_PATH
|
|
|
|
exec BINARY_PATH --config CONFIG_FILE_PATH "$@"
|
|
EOF
|
|
|
|
# Replace placeholders
|
|
sed -i '' "s|BINARY_PATH|$BINARY|g" "$RUN_SCRIPT"
|
|
sed -i '' "s|CONFIG_FILE_PATH|$CONFIG_FILE|g" "$RUN_SCRIPT"
|
|
chmod +x "$RUN_SCRIPT"
|
|
echo "✓ Created run script: $RUN_SCRIPT"
|
|
|
|
# Display instructions
|
|
echo ""
|
|
echo "✅ Installation complete!"
|
|
echo ""
|
|
echo "Configuration:"
|
|
echo " Config file: $CONFIG_FILE"
|
|
echo " Binary: $BINARY"
|
|
echo " Run script: $RUN_SCRIPT"
|
|
echo ""
|
|
echo "Quick Start:"
|
|
echo " 1. Edit configuration: nano $CONFIG_FILE"
|
|
echo " 2. Start server: $RUN_SCRIPT"
|
|
echo " 3. Check health: curl http://localhost:3000/api/health"
|
|
echo ""
|