GenerateToolsetsHelp generates the help text for the toolsets flag
()
| 351 | |
| 352 | // GenerateToolsetsHelp generates the help text for the toolsets flag |
| 353 | func GenerateToolsetsHelp() string { |
| 354 | // Get toolset group to derive defaults and available toolsets |
| 355 | // Build() can only fail if WithTools specifies invalid tools - not used here |
| 356 | r, _ := NewInventory(stubTranslator).Build() |
| 357 | |
| 358 | // Format default tools from metadata using strings.Builder |
| 359 | var defaultBuf strings.Builder |
| 360 | defaultIDs := r.DefaultToolsetIDs() |
| 361 | for i, id := range defaultIDs { |
| 362 | if i > 0 { |
| 363 | defaultBuf.WriteString(", ") |
| 364 | } |
| 365 | defaultBuf.WriteString(string(id)) |
| 366 | } |
| 367 | |
| 368 | // Get all available toolsets (excludes context for display) |
| 369 | allToolsets := r.AvailableToolsets("context") |
| 370 | var availableBuf strings.Builder |
| 371 | const maxLineLength = 70 |
| 372 | currentLine := "" |
| 373 | |
| 374 | for i, toolset := range allToolsets { |
| 375 | id := string(toolset.ID) |
| 376 | switch { |
| 377 | case i == 0: |
| 378 | currentLine = id |
| 379 | case len(currentLine)+len(id)+2 <= maxLineLength: |
| 380 | currentLine += ", " + id |
| 381 | default: |
| 382 | if availableBuf.Len() > 0 { |
| 383 | availableBuf.WriteString(",\n\t ") |
| 384 | } |
| 385 | availableBuf.WriteString(currentLine) |
| 386 | currentLine = id |
| 387 | } |
| 388 | } |
| 389 | if currentLine != "" { |
| 390 | if availableBuf.Len() > 0 { |
| 391 | availableBuf.WriteString(",\n\t ") |
| 392 | } |
| 393 | availableBuf.WriteString(currentLine) |
| 394 | } |
| 395 | |
| 396 | // Build the complete help text using strings.Builder |
| 397 | var buf strings.Builder |
| 398 | buf.WriteString("Comma-separated list of tool groups to enable (no spaces).\n") |
| 399 | buf.WriteString("Available: ") |
| 400 | buf.WriteString(availableBuf.String()) |
| 401 | buf.WriteString("\n") |
| 402 | buf.WriteString("Special toolset keywords:\n") |
| 403 | buf.WriteString(" - all: Enables all available toolsets\n") |
| 404 | buf.WriteString(" - default: Enables the default toolset configuration of:\n\t ") |
| 405 | buf.WriteString(defaultBuf.String()) |
| 406 | buf.WriteString("\n") |
| 407 | buf.WriteString("Examples:\n") |
| 408 | buf.WriteString(" - --toolsets=actions,gists,notifications\n") |
| 409 | buf.WriteString(" - Default + additional: --toolsets=default,actions,gists\n") |
| 410 | buf.WriteString(" - All tools: --toolsets=all") |