syntaxis/scripts/core/install-syntaxis-api.sh
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
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)
2025-12-26 18:36:23 +00:00

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 ""