Documentation
¶
Overview ¶
Example ¶
package main import ( "context" "fmt" "go.llib.dev/frameless/pkg/cli" ) func main() { var mux cli.Mux mux.Handle("foo", FooCommand{}) sub := mux.Sub("sub") sub.Handle("subcmd", SubCommand{}) cli.Main(context.Background(), mux) } type FooCommand struct { A string `flag:"the-a,a" default:"val" desc:"this is flag A"` B bool `flag:"the-b,b" default:"true"` // missing description C int `flag:"c" required:"true" desc:"this is flag C, not B"` D string `flag:"d" enum:"FOO,BAR,BAZ," desc:"this flag is an enum"` Arg string `arg:"0" desc:"something something"` OthArg int `arg:"1" default:"42"` // Dependency is a dependency of the FooCommand, which is populated though traditional dependency injection. Dependency string } func (cmd FooCommand) ServeCLI(w cli.Response, r *cli.Request) { fmt.Fprintln(w, "hello") } type SubCommand struct{} func (cmd SubCommand) ServeCLI(w cli.Response, r *cli.Request) { w.Write([]byte("sub-cmd")) }
Index ¶
Examples ¶
Constants ¶
View Source
const ( // ExitCodeOK : Success ExitCodeOK = 0 // ExitCodeError : General Error ExitCodeError = 1 // ExitCodeBadRequest : Misuse of shell builtins or invalid command-line usage, often equated with a bad request. ExitCodeBadRequest = 2 )
View Source
const ( ErrFlagMissing errorkit.Error = "ErrFlagMissing" ErrFlagParseIssue errorkit.Error = "ErrFlagParseIssue" ErrFlagInvalid errorkit.Error = "ErrFlagInvalid" ErrArgMissing errorkit.Error = "ErrArgMissing" ErrArgParseIssue errorkit.Error = "ErrArgParseIssue" ErrArgIndexInvalid errorkit.Error = "ErrArgIndexInvalid" ErrInvalidDefaultValue errorkit.Error = "ErrInvalidDefaultValue" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ErrorWriter ¶
type HandlerFunc ¶
func (HandlerFunc) ServeCLI ¶
func (fn HandlerFunc) ServeCLI(w Response, r *Request)
type HelpSummary ¶
type HelpSummary interface { // Summary returns a summary about the application // // TODO: Maybe ranem this to "Desc" as the tag "desc" is used for this purpose Summary() string }
type ResponseRecorder ¶
func (*ResponseRecorder) ExitCode ¶
func (rr *ResponseRecorder) ExitCode(n int)
func (*ResponseRecorder) Stdeout ¶
func (rr *ResponseRecorder) Stdeout() io.Writer
func (*ResponseRecorder) Stderr ¶
func (rr *ResponseRecorder) Stderr() (_ io.Writer)
Click to show internal directories.
Click to hide internal directories.