#!/usr/bin/env bash # File: prole.sh # Purpose: Manage Ollama environment and run models # Dotfile to store environment DOTFILE="$HOME/.prole-ollama" # Default values DEFAULT_MODEL="qwen3-coder:30b" DEFAULT_OLLAMA_HOST="${OLLAMA_HOST:-http://localhost:11434}" # Function to load existing settings if the dotfile exists load_dotfile() { if [[ -f "$DOTFILE" ]]; then # shellcheck source=/dev/null source "$DOTFILE" else OLLAMA_HOST="$DEFAULT_OLLAMA_HOST" PROLE_OLLAMA_MODEL="$DEFAULT_MODEL" fi } # Function to prompt for environment settings and save set_environment() { echo "Current OLLAMA_HOST: ${OLLAMA_HOST}" read -rp "Enter OLLAMA_HOST [${OLLAMA_HOST}]: " input_host if [[ -n "$input_host" ]]; then OLLAMA_HOST="$input_host" fi echo "Current PROLE_OLLAMA_MODEL: ${PROLE_OLLAMA_MODEL}" read -rp "Enter PROLE_OLLAMA_MODEL [${PROLE_OLLAMA_MODEL}]: " input_model if [[ -n "$input_model" ]]; then PROLE_OLLAMA_MODEL="$input_model" fi # Save to dotfile cat > "$DOTFILE" <> "$CONTEXT_FILE" echo "Running analysis with model: $PROLE_OLLAMA_MODEL" { echo "You are receiving project context from the Prole codebase." echo "The following is the combined content of all relevant files:" echo cat "$CONTEXT_FILE" echo echo "End of project context. Please analyze this codebase." } | ollama run "$PROLE_OLLAMA_MODEL" rm -f "$CONTEXT_FILE" } # Load previous settings load_dotfile # Main command dispatch case "$1" in run) run_model ;; analyze) analyze_dev ;; "" ) set_environment ;; *) echo "Usage: $0 [run|analyze]" exit 1 ;; esac