tools: Index | Files

package tool

import ""

Package tool is an opinionated harness for writing Go tools.


Package Files


func CommandLineErrorf Uses

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 Uses

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 Uses

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 Uses

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.

Package tool imports 10 packages (graph) and is imported by 6 packages. Updated 2019-09-15. Refresh now. Tools for package owners.