ciToolDefinition function

ToolDefinition ciToolDefinition({
  1. required String name,
  2. required String description,
  3. required String version,
  4. required List<String> stages,
  5. required Map<String, String> descriptions,
  6. String? helpFooter,
  7. String examplePrefix = 'ci.sh',
})

The tool definition of a CI tool: one command per stage in stages, plus all, each described by descriptions (which must hold all too).

Implementation

ToolDefinition ciToolDefinition({
  required String name,
  required String description,
  required String version,
  required List<String> stages,
  required Map<String, String> descriptions,
  String? helpFooter,
  String examplePrefix = 'ci.sh',
}) => ToolDefinition(
  name: name,
  description: description,
  version: version,
  mode: ToolMode.multiCommand,
  features: NavigationFeatures.minimal,
  commands: [
    for (final stage in [...stages, 'all'])
      CommandDefinition(
        name: stage,
        description: descriptions[stage] ?? '',
        requiresTraversal: false,
        supportsProjectTraversal: false,
        examples: ['$examplePrefix :$stage'],
      ),
  ],
  helpFooter: helpFooter,
);