Skip to content

gosuri/monocle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

monocle GoDoc Build Status

Monocle is a go library for advanced command line help. It extends Cobra library and provides a set of powerful features to customize generate help for a root command.

Monocle, along with cmdns powers most of OvrClk toolchain.

Example Usage

The source code for the below example is available at example/example.go

ovrclk := &cobra.Command{Use: "ovrclk", Short: "Utility to manage your clusters and applications"}

var app string
appInfo := &cobra.Command{Use: "info", Short: "display app info", Run: runFunc}
appInfo.Flags().StringVarP(&app, "app", "a", "", "app name")
apps := &cobra.Command{Use: "apps", Short: "manage apps", Long: "list all apps", Run: runFunc}
apps.AddCommand(appInfo)
ovrclk.AddCommand(apps)

var cluster string
clusterInfo := &cobra.Command{Use: "info", Short: "display cluster info", Run: runFunc}
clusterInfo.Flags().StringVarP(&cluster, "clusters", "c", "", "cluster name")
clusters := &cobra.Command{Use: "clusters", Short: "manage clusters", Long: "list all clusters", Run: runFunc}
clusters.AddCommand(clusterInfo)
ovrclk.AddCommand(clusters)

version := &cobra.Command{Use: "version", Short: "display version", Run: runFunc}
ovrclk.AddCommand(version)

// Enable monocle
monocle.Enable(ovrclk)

// Set primary topics
monocle.Primary(apps, clusters)

ovrclk.Execute()

Will produce the help like:

Utility to manage your clusters and applications

Usage: ovrclk COMMAND 

Primary help topics, type "ovrclk help TOPIC" for more details:

  apps          manage apps
  clusters      manage clusters 

Additional topics:

  version       display version

About

a go library for advanced command line help

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published