mirror of
https://github.com/PageAI-Pro/ralph-loop.git
synced 2026-09-14 20:06:52 +08:00
74 lines
1.5 KiB
Bash
74 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# Arguments module for ralph.sh
|
|
# CLI argument parsing
|
|
# Dependencies: constants.sh, agents.sh
|
|
|
|
# Parse command line arguments
|
|
# Sets: MAX_ITERATIONS, ONCE_FLAG, RALPH_AGENT, AGENT_EXTRA_ARGS
|
|
# Usage: parse_arguments "$@"
|
|
parse_arguments() {
|
|
MAX_ITERATIONS=10
|
|
ONCE_FLAG=false
|
|
RALPH_AGENT="claude"
|
|
AGENT_EXTRA_ARGS=()
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--)
|
|
shift
|
|
AGENT_EXTRA_ARGS=("$@")
|
|
break
|
|
;;
|
|
--help|-h)
|
|
show_help
|
|
;;
|
|
--once)
|
|
ONCE_FLAG=true
|
|
shift
|
|
;;
|
|
--agent|-a)
|
|
if [ -z "$2" ]; then
|
|
echo "Error: --agent requires a value" >&2
|
|
exit 1
|
|
fi
|
|
RALPH_AGENT=$(normalize_agent_name "$2")
|
|
shift 2
|
|
;;
|
|
--agent=*)
|
|
RALPH_AGENT=$(normalize_agent_name "${1#*=}")
|
|
shift
|
|
;;
|
|
--max-iterations|-n)
|
|
if [ -z "$2" ]; then
|
|
echo "Error: --max-iterations requires a value" >&2
|
|
exit 1
|
|
fi
|
|
MAX_ITERATIONS="$2"
|
|
shift 2
|
|
;;
|
|
--max-iterations=*)
|
|
MAX_ITERATIONS="${1#*=}"
|
|
shift
|
|
;;
|
|
[0-9]*)
|
|
MAX_ITERATIONS="$1"
|
|
shift
|
|
;;
|
|
*)
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# --once overrides max-iterations
|
|
if [ "$ONCE_FLAG" = true ]; then
|
|
MAX_ITERATIONS=1
|
|
fi
|
|
|
|
if ! is_supported_agent "$RALPH_AGENT"; then
|
|
echo "Error: unsupported agent '$RALPH_AGENT'" >&2
|
|
echo "Supported agents: $(supported_agents_list)" >&2
|
|
exit 1
|
|
fi
|
|
}
|