-
Notifications
You must be signed in to change notification settings - Fork 18
/
main.go
71 lines (53 loc) · 2.03 KB
/
main.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Package microctl provides the main client tool.
package main
import (
"os"
"github.com/spf13/cobra"
"github.com/canonical/microcluster/example/version"
)
// CmdControl has functions that are common to the microctl commands.
// command line tools.
type CmdControl struct {
cmd *cobra.Command //nolint:structcheck,unused // FIXME: Remove the nolint flag when this is in use.
FlagHelp bool
FlagVersion bool
FlagLogDebug bool
FlagLogVerbose bool
FlagStateDir string
}
func main() {
// common flags.
commonCmd := CmdControl{}
app := &cobra.Command{
Use: "microctl",
Short: "Command for managing the MicroCluster daemon",
Version: version.Version,
SilenceUsage: true,
CompletionOptions: cobra.CompletionOptions{DisableDefaultCmd: true},
}
app.PersistentFlags().StringVar(&commonCmd.FlagStateDir, "state-dir", "", "Path to store state information"+"``")
app.PersistentFlags().BoolVarP(&commonCmd.FlagHelp, "help", "h", false, "Print help")
app.PersistentFlags().BoolVar(&commonCmd.FlagVersion, "version", false, "Print version number")
app.PersistentFlags().BoolVarP(&commonCmd.FlagLogDebug, "debug", "d", false, "Show all debug messages")
app.PersistentFlags().BoolVarP(&commonCmd.FlagLogVerbose, "verbose", "v", false, "Show all information messages")
app.SetVersionTemplate("{{.Version}}\n")
var cmdInit = cmdInit{common: &commonCmd}
app.AddCommand(cmdInit.Command())
var cmdPeers = cmdClusterMembers{common: &commonCmd}
app.AddCommand(cmdPeers.Command())
var cmdShutdown = cmdShutdown{common: &commonCmd}
app.AddCommand(cmdShutdown.Command())
var cmdSQL = cmdSQL{common: &commonCmd}
app.AddCommand(cmdSQL.Command())
var cmdSecrets = cmdSecrets{common: &commonCmd}
app.AddCommand(cmdSecrets.Command())
var cmdWaitready = cmdWaitready{common: &commonCmd}
app.AddCommand(cmdWaitready.Command())
var cmdExtended = cmdExtended{common: &commonCmd}
app.AddCommand(cmdExtended.Command())
app.InitDefaultHelpCmd()
err := app.Execute()
if err != nil {
os.Exit(1)
}
}