 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
const ( JSON = "json" XML = "xml" Protobuf = "protobuf" Text = "text" )
Supported EncodingType constants.
Variables ¶
This section is empty.
Functions ¶
func ClientError ¶
Types ¶
type Command ¶
type Command struct {
	Options   []cmdkit.Option
	Arguments []cmdkit.Argument
	PreRun    func(req Request) error
	// Run is the function that processes the request to generate a response.
	// Note that when executing the command over the HTTP API you can only read
	// after writing when using multipart requests. The request body will not be
	// available for reading after the HTTP connection has been written to.
	Run        Function
	PostRun    Function
	Marshalers map[EncodingType]Marshaler
	Helptext   cmdkit.HelpText
	// External denotes that a command is actually an external binary.
	// fewer checks and validations will be performed on such commands.
	External bool
	// Type describes the type of the output of the Command's Run Function.
	// In precise terms, the value of Type is an instance of the return type of
	// the Run Function.
	//
	// ie. If command Run returns &Block{}, then Command.Type == &Block{}
	Type        interface{}
	Subcommands map[string]*Command
}
    Command is a runnable command, with input arguments and options (flags). It can also have Subcommands, to group units of work into sets.
func (*Command) Subcommand ¶
Subcommand returns the subcommand with the given id
type Context ¶
type Context struct {
	Online     bool
	ConfigRoot string
	ReqLog     *ReqLog
	LoadConfig func(path string) (*config.Config, error)
	ConstructNode func() (*core.IpfsNode, error)
	// contains filtered or unexported fields
}
    func (*Context) Close ¶ added in v0.4.14
func (c *Context) Close()
Close cleans up the application state.
func (*Context) GetApi ¶ added in v0.4.18
GetApi returns CoreAPI instance backed by ipfs node. It may construct the node with the provided function
func (*Context) GetConfig ¶
GetConfig returns the config of the current Command execution context. It may load it with the provided function.
func (*Context) GetNode ¶
GetNode returns the node of the current Command execution context. It may construct it with the provided function.
func (*Context) LogRequest ¶ added in v0.4.14
func (c *Context) LogRequest(req *cmds.Request) func()
LogRequest adds the passed request to the request log and returns a function that should be called when the request lifetime is over.
type Function ¶
Function is the type of function that Commands use. It reads from the Request, and writes results to the Response.
type Marshaler ¶
Marshaler is a function that takes in a Response, and returns an io.Reader (or an error on failure)
type MarshalerMap ¶
type MarshalerMap map[EncodingType]Marshaler
MarshalerMap is a map of Marshaler functions, keyed by EncodingType (or an error on failure)
type ReqLog ¶ added in v0.4.0
type ReqLog struct {
	Requests []*ReqLogEntry
	// contains filtered or unexported fields
}
    ReqLog is a log of requests
func (*ReqLog) Add ¶ added in v0.4.0
func (rl *ReqLog) Add(req Request) *ReqLogEntry
Add creates a ReqLogEntry from a request and adds it to the log
func (*ReqLog) AddEntry ¶ added in v0.4.14
func (rl *ReqLog) AddEntry(rle *ReqLogEntry)
AddEntry adds an entry to the log
func (*ReqLog) ClearInactive ¶ added in v0.4.0
func (rl *ReqLog) ClearInactive()
ClearInactive removes stale entries
func (*ReqLog) Finish ¶ added in v0.4.14
func (rl *ReqLog) Finish(rle *ReqLogEntry)
Finish marks an entry in the log as finished
func (*ReqLog) Report ¶ added in v0.4.0
func (rl *ReqLog) Report() []*ReqLogEntry
Report generates a copy of all the entries in the requestlog
func (*ReqLog) SetKeepTime ¶ added in v0.4.0
SetKeepTime sets a duration after which an entry will be considered inactive
type ReqLogEntry ¶ added in v0.4.0
type ReqLogEntry struct {
	StartTime time.Time
	EndTime   time.Time
	Active    bool
	Command   string
	Options   map[string]interface{}
	Args      []string
	ID        int
	// contains filtered or unexported fields
}
    ReqLogEntry is an entry in the request log
func (*ReqLogEntry) Copy ¶ added in v0.4.0
func (r *ReqLogEntry) Copy() *ReqLogEntry
Copy returns a copy of the ReqLogEntry
type Request ¶
type Request interface {
	Path() []string
	Option(name string) *cmdkit.OptionValue
	Options() cmdkit.OptMap
	Arguments() []string
	StringArguments() []string
	Files() files.File
	Context() context.Context
	InvocContext() *Context
	Command() *Command
}
    Request represents a call to a command from a consumer
type Response ¶
type Response interface {
	Request() Request
	// Set/Return the response Error
	SetError(err error, code cmdkit.ErrorType)
	Error() *cmdkit.Error
	// Sets/Returns the response value
	SetOutput(interface{})
	Output() interface{}
	// Sets/Returns the length of the output
	SetLength(uint64)
	Length() uint64
	// underlying http connections need to be cleaned up, this is for that
	Close() error
	SetCloser(io.Closer)
	// Marshal marshals out the response into a buffer. It uses the EncodingType
	// on the Request to chose a Marshaler (Codec).
	Marshal() (io.Reader, error)
	// Gets a io.Reader that reads the marshalled output
	Reader() (io.Reader, error)
	// Gets Stdout and Stderr, for writing to console without using SetOutput
	Stdout() io.Writer
	Stderr() io.Writer
}
    Response is the result of a command request. Handlers write to the response, setting Error or Value. Response is returned to the client.