mani
mani lets you manage multiple repositories and run commands across them.
Interested in managing your servers in a similar way? Checkout sake!
Table of Contents
Sponsors
Mani is an MIT-licensed open source project with ongoing development. If you'd like to support their efforts, check out Tabify - a Chrome extension that enhances your browsing experience with powerful window and tab management, focus-improving site blocking, and numerous features to optimize your browser workflow.
Installation
mani is available on Linux and Mac, with partial support for Windows.
Binaries
Download from the release page.
cURL (Linux & macOS)
curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | shHomebrew
brew tap alajmo/mani brew install mani
MacPorts
Arch (AUR)
Nix
Go
go get -u github.com/alajmo/mani
Building From Source
- Clone the repo
- Build and run the executable
make build && ./dist/mani
Auto-completion is available via mani completion bash|zsh|fish|powershell and man page via mani gen.
Usage
Initialize Mani
Run the following command inside a directory containing your git repositories:
This will generate:
mani.yaml: Contains projects and custom tasks. Any subdirectory that has a.gitdirectory will be included (add the flag--auto-discovery=falseto turn off this feature).gitignore: (only when inside a git repo) Includes the projects specified inmani.yamlfile. To opt out, usemani init --sync-gitignore=false.
It can be helpful to initialize the mani repository as a git repository so that anyone can easily download the mani repository and run mani sync to clone all repositories and get the same project setup as you.
Example Commands
# List all projects mani list projects # Run git status across all projects mani exec --all git status # Run git status across all projects in parallel with output in table format mani exec --all --parallel --output table git status
Documentation
Checkout the following to learn more about mani:
- Examples
- Config
- Commands
- Documentation
- Changelog
- Roadmap
- Project Background
- Contributing
License
The MIT License (MIT)
Copyright (c) 2020-2021 Samir Alajmovic
