-
Notifications
You must be signed in to change notification settings - Fork 0
/
sonic.go
41 lines (34 loc) · 1.06 KB
/
sonic.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
import (
"github.com/devfacet/gocmd"
)
func main() {
flags := struct {
Help bool `short:"h" long:"help" description:"Display usage" global:"true"`
Version bool `short:"v" long:"version" description:"Display version"`
Debug struct {
Settings bool `settings:"true" allow-unknown-arg:"true"`
} `command:"debug" description:"Print arguments"`
Info struct {
Full bool `short:"f" long:"full" required:"false" description:"show full output"`
Settings bool `settings:"true" allow-unknown-arg:"true"`
} `command:"info" description:"Show information about a compute resource"`
}{}
// Debug command
gocmd.HandleFlag("Debug", func(cmd *gocmd.Cmd, args []string) error {
DebugCommand()
return nil
})
gocmd.HandleFlag("Info", func(cmd *gocmd.Cmd, args []string) error {
InfoCommand(args[1], flags.Info.Full)
return nil
})
// Init the app
gocmd.New(gocmd.Options{
Name: "sonic",
Version: "1.0.0",
Description: "Find and connect wherever you need to go",
Flags: &flags,
ConfigType: gocmd.ConfigTypeAuto,
})
}