app

package
v2.0.5 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package app provides app-wide data structs and functions.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrHelp           = errors.New("print help")
	ErrUnknownRequest = errors.New("request does not exist")
)

Functions

func Debug

func Debug(fmt string, v ...interface{})

Types

type Command

type Command interface {
	Prepare() error
	Run() error
	Cmd() string
	Help() string
}

type CommandFactory

type CommandFactory interface {
	Make(string, Context) (Command, error)
}

type Context

type Context struct {
	// Set in main.go or by wrapper
	In        io.Reader // where to read user input (default: stdin)
	Out       io.Writer // where to print output (default: stdout)
	Hooks     Hooks     // for integration with other code
	Factories Factories // for integration with other code

	// Set automatically in spinc.Run()
	Options  config.Options // command line options (--addr, etc.)
	Command  config.Command // command and args, if any ("start <request>", etc.)
	RMClient rm.Client      // Request Manager client
	Nargs    int            // number of positional args including command
}

Context represents how to run spinc. A context is passed to spinc.Run(). A default context is created in main.go. Wrapper code can integrate with spinc by passing a custom context to spinc.Run(). Integration is done primarily with hooks and factories.

type Factories

type Factories struct {
	HTTPClient HTTPClientFactory
	Command    CommandFactory
}

type HTTPClientFactory

type HTTPClientFactory interface {
	Make(Context) (*http.Client, error)
}

type Hooks

type Hooks struct {
	AfterParseOptions func(*config.Options)
	CommandRunResult  func(interface{}, error)
}

Jump to

Keyboard shortcuts

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