Awesome Go

mani

CategoryUtilities
SubcategoryUtilities
Stars0

CLI tool to help you manage multiple repositories

About mani

mani lets you manage multiple repositories and run commands across them.

demo

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.

Download from the release page.

curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | sh
brew tap alajmo/mani
brew install mani
sudo port install mani
yay -S mani
nix-env -iA nixos.mani
go get -u github.com/alajmo/mani
  1. Clone the repo
  2. 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:

mani init

This will generate:

  • mani.yaml: Contains projects and custom tasks. Any subdirectory that has a .git directory will be included (add the flag --auto-discovery=false to turn off this feature)
  • .gitignore: (only when inside a git repo) Includes the projects specified in mani.yaml file. To opt out, use mani 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:

License

The MIT License (MIT)

Copyright (c) 2020-2021 Samir Alajmovic

Frequently Asked Questions

What is mani?

mani is a Utilities library for the Go programming language. CLI tool to help you manage multiple repositories

How do I install mani?

Install mani with the Go module system using `go get alajmo/mani`. Check the repository for the current installation instructions.

What category does mani belong to?

mani is listed under Utilities, specifically Utilities.

← Back to Utilities