Skip to content

Latest commit

 

History

History
579 lines (402 loc) · 11.3 KB

commands.md

File metadata and controls

579 lines (402 loc) · 11.3 KB

Commands

mani

repositories manager and task runner

Synopsis

mani is a CLI tool that helps you manage multiple repositories.

It's useful when you are working with microservices, multi-project systems, multiple libraries, or just a collection of repositories and want a central place for pulling all repositories and running commands across them.

Options

      --color                enable color (default true)
  -c, --config string        specify config
  -h, --help                 help for mani
  -u, --user-config string   specify user config

run

Run tasks

Synopsis

Run tasks.

The tasks are specified in a mani.yaml file along with the projects you can target.

run <task>

Examples

  # Execute task for all projects
  mani run <task> --all

  # Execute a task in parallel with a maximum of 8 concurrent processes
  mani run <task> --projects <project> --parallel --forks 8

  # Execute task for a specific projects
  mani run <task> --projects <project>

  # Execute a task for projects with specific tags
  mani run <task> --tags <tag>

  # Execute a task for projects matching specific paths
  mani run <task> --paths <path>

  # Execute a task for all projects matching a tag expression
  mani run <task> --tags-expr 'active || git' <tag>

  # Execute a task with environment variables from shell
  mani run <task> key=value

Options

  -a, --all                   select all projects
  -k, --cwd                   select current working directory
      --describe              display task information
      --dry-run               display the task without execution
  -e, --edit                  edit task
  -f, --forks uint32          maximum number of concurrent processes (default 4)
  -h, --help                  help for run
      --ignore-errors         continue execution despite errors
      --ignore-non-existing   skip non-existing projects
      --omit-empty-columns    hide empty columns in table output
      --omit-empty-rows       hide empty rows in table output
  -o, --output string         set output format [stream|table|markdown|html]
      --parallel              execute tasks in parallel across projects
  -d, --paths strings         select projects by path
  -p, --projects strings      select projects by name
  -s, --silent                hide progress output during task execution
  -J, --spec string           set spec
  -t, --tags strings          select projects by tag
  -E, --tags-expr string      select projects by tags expression
  -T, --target string         select projects by target name
      --theme string          set theme
      --tty                   replace current process

exec

Execute arbitrary commands

Synopsis

Execute arbitrary commands. Use single quotes around your command to prevent file globbing and environment variable expansion from occurring before the command is executed in each directory.

exec <command> [flags]

Examples

  # List files in all projects
  mani exec --all ls

  # List git files with markdown suffix in all projects
  mani exec --all 'git ls-files | grep -e ".md"'

Options

  -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)
  -h, --help                  help for exec
      --ignore-errors         ignore errors
      --ignore-non-existing   ignore non-existing projects
      --omit-empty-columns    omit empty columns in table output
      --omit-empty-rows       omit empty rows in table output
  -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
  -J, --spec string           set spec
  -t, --tags strings          select projects by tag
  -E, --tags-expr string      select projects by tags expression
  -T, --target string         target projects by target name
      --theme string          set theme
      --tty                   replace current process

init

Initialize a mani repository

Synopsis

Initialize a mani repository.

Creates a new mani repository by generating a mani.yaml configuration file and a .gitignore file in the current directory.

init [flags]

Examples

  # Initialize with default settings
  mani init

  # Initialize without auto-discovering projects
  mani init --auto-discovery=false

  # Initialize without updating .gitignore
  mani init --sync-gitignore=false

Options

      --auto-discovery   automatically discover and add Git repositories to mani.yaml (default true)
  -h, --help             help for init
  -g, --sync-gitignore   synchronize .gitignore file (default true)

sync

Clone repositories and update .gitignore

Synopsis

Clone repositories and update .gitignore file. For repositories requiring authentication, disable parallel cloning to enter credentials for each repository individually.

sync [flags]

Examples

  # Clone repositories one at a time
  mani sync

  # Clone repositories in parallell
  mani sync --parallel

  # Disable updating .gitignore file
  mani sync --sync-gitingore=false

  # Sync project remotes. This will modify the projects .git state
  mani sync --sync-remotes

	# Clone repositories even if project sync field is set to false
  mani sync --ignore-sync-state

  # Display sync status
  mani sync --status

Options

  -f, --forks uint32        maximum number of concurrent processes (default 4)
  -h, --help                help for sync
      --ignore-sync-state   sync project even if the project's sync field is set to false
  -p, --parallel            clone projects in parallel
  -d, --paths strings       clone projects by path
  -s, --status              display status only
  -g, --sync-gitignore      sync gitignore (default true)
  -r, --sync-remotes        update git remote state
  -t, --tags strings        clone projects by tags
  -E, --tags-expr string    clone projects by tag expression

edit

Open up mani config file

Synopsis

Open up mani config file in $EDITOR.

edit [flags]

Examples

  # Edit current context
  mani edit

Options

  -h, --help   help for edit

edit project

Edit mani project

Synopsis

Edit mani project in $EDITOR.

edit project [project] [flags]

Examples

  # Edit projects
  mani edit project

  # Edit project <project>
  mani edit project <project>

Options

  -h, --help   help for project

edit task

Edit mani task

Synopsis

Edit mani task in $EDITOR.

edit task [task] [flags]

Examples

  # Edit tasks
  mani edit task

  # Edit task <task>
  mani edit task <task>

Options

  -h, --help   help for task

list projects

List projects

Synopsis

List projects.

list projects [projects] [flags]

Examples

  # List all projects
  mani list projects

  # List projects by name
  mani list projects <project>

  # List projects by tags
  mani list projects --tags <tag>

  # List projects by paths
  mani list projects --paths <path>

	# List projects matching a tag expression
	mani run <task> --tags-expr '<tag-1> || <tag-2>'

Options

  -a, --all                select all projects (default true)
  -k, --cwd                select current working directory
      --headers strings    specify columns to display [project, path, relpath, description, url, tag] (default [project,tag,description])
  -h, --help               help for projects
  -d, --paths strings      select projects by paths
  -t, --tags strings       select projects by tags
  -E, --tags-expr string   select projects by tags expression
  -T, --target string      select projects by target name
      --tree               display output in tree format

Options inherited from parent commands

  -o, --output string   set output format [table|markdown|html] (default "table")
      --theme string    set theme (default "default")

list tags

List tags

Synopsis

List tags.

list tags [tags] [flags]

Examples

  # List all tags
  mani list tags

Options

      --headers strings   specify columns to display [project, tag] (default [tag,project])
  -h, --help              help for tags

Options inherited from parent commands

  -o, --output string   set output format [table|markdown|html] (default "table")
      --theme string    set theme (default "default")

list tasks

List tasks

Synopsis

List tasks.

list tasks [tasks] [flags]

Examples

  # List all tasks
  mani list tasks

  # List tasks by name
  mani list task <task>

Options

      --headers strings   specify columns to display [task, description, target, spec] (default [task,description])
  -h, --help              help for tasks

Options inherited from parent commands

  -o, --output string   set output format [table|markdown|html] (default "table")
      --theme string    set theme (default "default")

describe projects

Describe projects

Synopsis

Describe projects.

describe projects [projects] [flags]

Examples

  # Describe all projects
  mani describe projects

  # Describe projects by name
  mani describe projects <project>

  # Describe projects by tags
  mani describe projects --tags <tag>

  # Describe projects by paths
  mani describe projects --paths <path>

	# Describe projects matching a tag expression
	mani run <task> --tags-expr '<tag-1> || <tag-2>'

Options

  -a, --all                select all projects (default true)
  -k, --cwd                select current working directory
  -e, --edit               edit project
  -h, --help               help for projects
  -d, --paths strings      filter projects by paths
  -t, --tags strings       filter projects by tags
  -E, --tags-expr string   target projects by tags expression
  -T, --target string      target projects by target name

Options inherited from parent commands

      --theme string   set theme (default "default")

describe tasks

Describe tasks

Synopsis

Describe tasks.

describe tasks [tasks] [flags]

Examples

  # Describe all tasks
  mani describe tasks

  # Describe task <task>
  mani describe task <task>

Options

  -e, --edit   edit task
  -h, --help   help for tasks

Options inherited from parent commands

      --theme string   set theme (default "default")

tui

TUI

Synopsis

Run TUI

tui [flags]

Examples

  # Open tui
  mani tui

Options

  -h, --help               help for tui
  -r, --reload-on-change   reload mani on config change
      --theme string       set theme (default "default")

check

Validate config

Synopsis

Validate config.

check [flags]

Examples

  # Validate config
  mani check

Options

  -h, --help   help for check

gen

Generate man page

gen

Options

  -d, --dir string   directory to save manpage to (default "./")
  -h, --help         help for gen