cmdmain

package
v0.0.0-...-a5a65f0 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2017 License: Apache-2.0 Imports: 9 Imported by: 156

Documentation

Overview

Package cmdmain contains the shared implementation for camget, camput, camtool, and other Camlistore command-line tools.

Index

Constants

This section is empty.

Variables

View Source
var (
	FlagVersion = flag.Bool("version", false, "show version")
	FlagHelp    = flag.Bool("help", false, "print usage")
	FlagVerbose = flag.Bool("verbose", false, "extra debug logging")
	FlagLegal   = flag.Bool("legal", false, "show licenses")
)
View Source
var (
	// ExtraFlagRegistration allows to add more flags from
	// other packages (with AddFlags) when Main starts.
	ExtraFlagRegistration = func() {}
	// PostFlag runs code that needs to happen after flags were parsed, but
	// before the subcommand is run.
	PostFlag = func() {}
	// PreExit runs after the subcommand, but before Main terminates
	// with either success or the error from the subcommand.
	PreExit = func() {}
	// ExitWithFailure determines whether the command exits
	// with a non-zero exit status.
	ExitWithFailure bool
)
View Source
var (

	// Indirections for replacement by tests
	Stderr io.Writer = os.Stderr
	Stdout io.Writer = os.Stdout
	Stdin  io.Reader = os.Stdin

	Exit = realExit
)
View Source
var ErrUsage = UsageError("invalid command")

Functions

func Errorf

func Errorf(format string, args ...interface{})

Errorf prints to Stderr, regardless of FlagVerbose.

func Logf

func Logf(format string, v ...interface{})

Logf logs to Stderr if FlagVerbose, and is silent otherwise.

func Main

func Main()

Main is meant to be the core of a command that has subcommands (modes), such as camput or camtool.

func PrintLicenses

func PrintLicenses()

PrintLicenses prints all the licences registered by go4.org/legal for this program.

func Printf

func Printf(format string, args ...interface{})

Printf prints to Stderr if FlagVerbose, and is silent otherwise.

func RegisterCommand

func RegisterCommand(mode string, makeCmd func(Flags *flag.FlagSet) CommandRunner)

RegisterCommand adds a mode to the list of modes for the main command. It is meant to be called in init() for each subcommand.

Types

type CommandRunner

type CommandRunner interface {
	Usage()
	RunCommand(args []string) error
}

CommandRunner is the type that a command mode should implement.

type UsageError

type UsageError string

func (UsageError) Error

func (ue UsageError) Error() string

Jump to

Keyboard shortcuts

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