mitchellh / cli

A Go library for implementing command-line interfaces.
Mozilla Public License 2.0
1.73k stars 123 forks source link
🚨 This project is archived. 🚨 Learn More

Go CLI Library GoDoc

cli is a library for implementing command-line interfaces in Go. cli is the library that powers the CLI for Packer, Consul, Vault, Terraform, Nomad, and more.

Features

Example

Below is a simple example of creating and running a CLI

package main

import (
    "log"
    "os"

    "github.com/mitchellh/cli"
)

func main() {
    c := cli.NewCLI("app", "1.0.0")
    c.Args = os.Args[1:]
    c.Commands = map[string]cli.CommandFactory{
        "foo": fooCommandFactory,
        "bar": barCommandFactory,
    }

    exitStatus, err := c.Run()
    if err != nil {
        log.Println(err)
    }

    os.Exit(exitStatus)
}