#!/bin/bash # Ralph Enable CI - Non-Interactive Version for Automation # Adds Ralph configuration with sensible defaults # # Usage: # ralph enable-ci # Auto-detect and enable # ralph enable-ci --from beads # With specific task source # ralph enable-ci --json # Output JSON result # # Exit codes: # 0 - Success: Ralph enabled # 1 - Error: General error # 2 - Already enabled (use --force to override) # 3 - Invalid arguments # 4 - File not found (e.g., PRD file) # 5 - Dependency missing (e.g., jq for --json) # # Version: 0.11.0 set -e # Get script directory for library loading SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Try to load libraries from global installation first, then local RALPH_HOME="${RALPH_HOME:-$HOME/.ralph}" if [[ -f "$RALPH_HOME/lib/enable_core.sh" ]]; then LIB_DIR="$RALPH_HOME/lib" elif [[ -f "$SCRIPT_DIR/lib/enable_core.sh" ]]; then LIB_DIR="$SCRIPT_DIR/lib" else echo '{"error": "Cannot find Ralph libraries", "code": 1}' >&2 exit 1 fi # Disable colors for CI export ENABLE_USE_COLORS="false" # Source libraries source "$LIB_DIR/enable_core.sh" source "$LIB_DIR/task_sources.sh" # ============================================================================= # CONFIGURATION # ============================================================================= # Command line options FORCE_OVERWRITE=false TASK_SOURCE="" PRD_FILE="" GITHUB_LABEL="ralph-task" PROJECT_NAME="" PROJECT_TYPE="" OUTPUT_JSON=false QUIET=false SHOW_HELP=false # Version VERSION="0.11.0" # ============================================================================= # HELP # ============================================================================= show_help() { cat << EOF Ralph Enable CI - Non-Interactive Version for Automation Usage: ralph enable-ci [OPTIONS] Options: --from Import tasks from: beads, github, prd, none --prd PRD file to convert (when --from prd) --label