Version: v3.0.0+incompatible Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2019 License: MIT, BSD-3-Clause Imports: 10 Imported by: 0



Package tool is an opinionated harness for writing Go tools.



This section is empty.


This section is empty.


func CommandLineErrorf

func CommandLineErrorf(message string, args ...interface{}) error

CommandLineErrorf is like fmt.Errorf except that it returns a value that triggers printing of the command line help. In general you should use this when generating command line validation errors.

func Main

func Main(ctx context.Context, app Application, args []string)

Main should be invoked directly by main function. It will only return if there was no error.


type Application

type Application interface {
	// Name returns the application's name. It is used in help and error messages.
	Name() string
	// Most of the help usage is automatically generated, this string should only
	// describe the contents of non flag arguments.
	Usage() string
	// ShortHelp returns the one line overview of the command.
	ShortHelp() string
	// DetailedHelp should print a detailed help message. It will only ever be shown
	// when the ShortHelp is also printed, so there is no need to duplicate
	// anything from there.
	// It is passed the flag set so it can print the default values of the flags.
	// It should use the flag sets configured Output to write the help to.
	// Run is invoked after all flag processing, and inside the profiling and
	// error handling harness.
	Run(ctx context.Context, args ...string) error

Application is the interface that must be satisfied by an object passed to Main.

type Profile

type Profile struct {
	CPU    string `flag:"profile.cpu" help:"write CPU profile to this file"`
	Memory string `flag:"profile.mem" help:"write memory profile to this file"`
	Trace  string `flag:"profile.trace" help:"write trace log to this file"`

Profile can be embedded in your application struct to automatically add command line arguments and handling for the common profiling methods.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL