id = "mani" name = "mani" homepage = "https://manicli.com/" description = "CLI tool for managing multiple repositories" executables = ["mani"] [dotfiles] # mani's official configuration reference documents the user config as # ~/.config/mani/config.yaml on Linux, ~/Library/Application Support/mani on # macOS, and %AppData%\\mani on Windows. [configHome] and [appData] model those # platform roots in the catalog. # https://manicli.com/config/ 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 } [[commands.subcommand]] path = ["exec"] label = "Run a command on projects" [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://github.com/alajmo/mani/blob/main/docs/commands.md" evidence = """ mani exec --all ls -a, --all target all projects -k, --cwd use current working directory --dry-run print commands without executing them -f, --forks uint32 maximum number of concurrent processes (default 4) --ignore-errors ignore errors -o, --output string set output format [stream|table|markdown|html] --parallel run tasks in parallel across projects -d, --paths strings select projects by path -p, --projects strings select projects by name -s, --silent hide progress when running tasks -t, --tags strings select projects by tag""" [[commands.subcommand.field]] id = "command" label = "Command" description = "Shell command to run; quote pipelines." type = "string" position = 0 sources = ["docs"] [[commands.subcommand.field]] id = "all" label = "All projects" type = "boolean" option = ["--all", "-a"] sources = ["docs"] [[commands.subcommand.field]] id = "projects" label = "Projects" description = "Project names, comma separated." type = "string" option = ["--projects", "-p"] sources = ["docs"] [[commands.subcommand.field]] id = "tags" label = "Tags" description = "Tags, comma separated." type = "string" option = ["--tags", "-t"] sources = ["docs"] [[commands.subcommand.field]] id = "paths" label = "Paths" description = "Project paths, comma separated." type = "string" option = ["--paths", "-d"] sources = ["docs"] [[commands.subcommand.field]] id = "cwd" label = "Current directory" type = "boolean" option = ["--cwd", "-k"] sources = ["docs"] [[commands.subcommand.field]] id = "parallel" label = "Parallel" type = "boolean" option = ["--parallel"] sources = ["docs"] [[commands.subcommand.field]] id = "forks" label = "Max concurrent" type = "integer" option = ["--forks", "-f"] sources = ["docs"] [[commands.subcommand.field]] 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"] [[commands.subcommand.field]] id = "dry_run" label = "Dry run" type = "boolean" option = ["--dry-run"] sources = ["docs"] [[commands.subcommand.field]] id = "ignore_errors" label = "Ignore errors" type = "boolean" option = ["--ignore-errors"] sources = ["docs"] [[commands.subcommand.field]] id = "silent" label = "Silent" type = "boolean" option = ["--silent", "-s"] sources = ["docs"] [[commands.subcommand.task]] id = "all" label = "Run on all projects" set = { all = [true] } lock = ["all"] fields = ["command", "all", "parallel", "output", "dry_run"] required = ["command"] [[commands.subcommand.task]] id = "selected" label = "Run on selected projects" fields = ["command", "projects", "tags", "paths", "parallel", "output"] required = ["command"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["command", "all", "projects", "tags", "paths", "cwd", "parallel", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["forks", "dry_run", "ignore_errors", "silent"]