{
  "id": "mani",
  "name": "mani",
  "homepage": "https://manicli.com/",
  "description": "CLI tool for managing multiple repositories",
  "executables": [
    "mani"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/mani/config.yaml",
      "[appData]/mani/config.yaml"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "mani",
    "description": "Run a shell command across the projects in mani.yaml. Other subcommands, tag expressions and themes are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "exec"
        ],
        "label": "Run a command on projects",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://github.com/alajmo/mani/blob/main/docs/commands.md",
            "evidence": "  mani exec --all ls\n  -a, --all                   target all projects\n  -k, --cwd                   use current working directory\n      --dry-run               print commands without executing them\n  -f, --forks uint32          maximum number of concurrent processes (default 4)\n      --ignore-errors         ignore errors\n  -o, --output string         set output format [stream|table|markdown|html]\n      --parallel              run tasks in parallel across projects\n  -d, --paths strings         select projects by path\n  -p, --projects strings      select projects by name\n  -s, --silent                hide progress when running tasks\n  -t, --tags strings          select projects by tag"
          }
        ],
        "field": [
          {
            "id": "command",
            "label": "Command",
            "description": "Shell command to run; quote pipelines.",
            "type": "string",
            "position": 0,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "all",
            "label": "All projects",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "projects",
            "label": "Projects",
            "description": "Project names, comma separated.",
            "type": "string",
            "option": [
              "--projects",
              "-p"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "tags",
            "label": "Tags",
            "description": "Tags, comma separated.",
            "type": "string",
            "option": [
              "--tags",
              "-t"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "paths",
            "label": "Paths",
            "description": "Project paths, comma separated.",
            "type": "string",
            "option": [
              "--paths",
              "-d"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "cwd",
            "label": "Current directory",
            "type": "boolean",
            "option": [
              "--cwd",
              "-k"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "parallel",
            "label": "Parallel",
            "type": "boolean",
            "option": [
              "--parallel"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "forks",
            "label": "Max concurrent",
            "type": "integer",
            "option": [
              "--forks",
              "-f"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "output",
            "label": "Output format",
            "type": "enum",
            "option": [
              "--output",
              "-o"
            ],
            "choices": [
              {
                "value": "stream",
                "label": "Stream"
              },
              {
                "value": "table",
                "label": "Table"
              },
              {
                "value": "markdown",
                "label": "Markdown"
              },
              {
                "value": "html",
                "label": "HTML"
              }
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "ignore_errors",
            "label": "Ignore errors",
            "type": "boolean",
            "option": [
              "--ignore-errors"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "silent",
            "label": "Silent",
            "type": "boolean",
            "option": [
              "--silent",
              "-s"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "all",
            "label": "Run on all projects",
            "set": {
              "all": [
                true
              ]
            },
            "lock": [
              "all"
            ],
            "fields": [
              "command",
              "all",
              "parallel",
              "output",
              "dry_run"
            ],
            "required": [
              "command"
            ]
          },
          {
            "id": "selected",
            "label": "Run on selected projects",
            "fields": [
              "command",
              "projects",
              "tags",
              "paths",
              "parallel",
              "output"
            ],
            "required": [
              "command"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "command",
              "all",
              "projects",
              "tags",
              "paths",
              "cwd",
              "parallel",
              "output"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "forks",
              "dry_run",
              "ignore_errors",
              "silent"
            ]
          }
        ]
      }
    ]
  }
}
