MCPcopy Create free account
hub / github.com/MiniCodeMonkey/chief / parseTUIFlags

Function parseTUIFlags

cmd/chief/main.go:160–254  ·  view source on GitHub ↗

parseTUIFlags parses command-line flags for TUI mode

()

Source from the content-addressed store, hash-verified

158
159// parseTUIFlags parses command-line flags for TUI mode
160func parseTUIFlags() *TUIOptions {
161 opts := &TUIOptions{
162 PRDPath: "", // Will be resolved later
163 MaxIterations: 0, // 0 signals dynamic calculation (remaining stories + 5)
164 Verbose: false,
165 Merge: false,
166 Force: false,
167 NoRetry: false,
168 }
169
170 // Pre-extract agent flags so they don't interfere with positional arg parsing
171 opts.Agent, opts.AgentPath, _ = parseAgentFlags(os.Args, 1)
172
173 for i := 1; i < len(os.Args); i++ {
174 arg := os.Args[i]
175
176 switch {
177 case arg == "--help" || arg == "-h":
178 printHelp()
179 return nil
180 case arg == "--version" || arg == "-v":
181 fmt.Printf("chief version %s\n", Version)
182 return nil
183 case arg == "--verbose":
184 opts.Verbose = true
185 case arg == "--merge":
186 opts.Merge = true
187 case arg == "--force":
188 opts.Force = true
189 case arg == "--no-retry":
190 opts.NoRetry = true
191 case arg == "--agent" || arg == "--agent-path":
192 i++ // skip value (already parsed by parseAgentFlags)
193 case strings.HasPrefix(arg, "--agent=") || strings.HasPrefix(arg, "--agent-path="):
194 // already parsed by parseAgentFlags
195 case arg == "--max-iterations" || arg == "-n":
196 // Next argument should be the number
197 if i+1 < len(os.Args) {
198 i++
199 n, err := strconv.Atoi(os.Args[i])
200 if err != nil {
201 fmt.Fprintf(os.Stderr, "Error: invalid value for %s: %s\n", arg, os.Args[i])
202 os.Exit(1)
203 }
204 if n < 1 {
205 fmt.Fprintf(os.Stderr, "Error: --max-iterations must be at least 1\n")
206 os.Exit(1)
207 }
208 opts.MaxIterations = n
209 } else {
210 fmt.Fprintf(os.Stderr, "Error: %s requires a value\n", arg)
211 os.Exit(1)
212 }
213 case strings.HasPrefix(arg, "--max-iterations="):
214 val := strings.TrimPrefix(arg, "--max-iterations=")
215 n, err := strconv.Atoi(val)
216 if err != nil {
217 fmt.Fprintf(os.Stderr, "Error: invalid value for --max-iterations: %s\n", val)

Callers 1

mainFunction · 0.85

Calls 2

parseAgentFlagsFunction · 0.85
printHelpFunction · 0.85

Tested by

no test coverage detected