func NewCmdLaunchdStatus(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "status", Flags: []cli.Flag{ cli.StringFlag{ Name: "b, bundle-version", Usage: "Bundle version", }, cli.StringFlag{ Name: "f, format", Usage: "Format for output. Specify 'j' for JSON or blank for default.", }, }, ArgumentHelp: "<service-name>", Usage: "Status for keybase launchd service, including for installing or updating", Action: func(c *cli.Context) { // This is to bypass the logui protocol registration in main.go which is // triggering a connection before our Run() is called. See that file for // more info. cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdLaunchdStatusRunner(g), "status", c) }, } }
func NewCmdInstall(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "install", Flags: []cli.Flag{ cli.StringFlag{ Name: "f, force", Usage: "Force install actions.", }, cli.StringFlag{ Name: "o, format", Usage: "Format for output. Specify 'j' for JSON or blank for default.", }, cli.StringFlag{ Name: "b, bin-path", Usage: "Full path to the executable, if it would be ambiguous otherwise.", }, cli.StringFlag{ Name: "i, installer", Usage: "Installer to use.", }, cli.StringFlag{ Name: "c, components", Usage: "Components to install, comma separated. Specify 'cli' for command line, 'service' for service, kbfs for 'kbfs', or blank for all.", }, }, ArgumentHelp: "", Usage: "Installs Keybase components", Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdInstallRunner(g), "install", c) }, } }
// NewCmdCtlStop constructs ctl start command func NewCmdCtlStop(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "stop", Usage: "Stop the app and services", Flags: []cli.Flag{ cli.StringFlag{ Name: "include", Usage: fmt.Sprintf("Stop only specified components, comma separated. Specify %v.", availableCtlComponents), }, cli.StringFlag{ Name: "exclude", Usage: fmt.Sprintf("Stop all except excluded components, comma separated. Specify %v.", availableCtlComponents), }, cli.BoolFlag{ Name: "no-wait", Usage: "If specified we won't wait for services to exit", }, }, Action: func(c *cli.Context) { cl.ChooseCommand(newCmdCtlStop(g), "stop", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) cl.SetNoStandalone() }, } }
func NewCmdCtlStart(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "start", Usage: "Start the background keybase service", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdCtlStart{libkb.NewContextified(g)}, "start", c) cl.SetForkCmd(libcmdline.ForceFork) cl.SetNoStandalone() }, } }
// NewCmdWatchdog2 constructs watchdog command func NewCmdWatchdog2(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "watchdog2", Usage: "Start and monitor background services", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdWatchdog2{Contextified: libkb.NewContextified(g)}, "watchdog2", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) }, } }
func NewCmdCtlLogRotate(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "log-rotate", Usage: "Close and open the keybase service's log file", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdCtlLogRotate{libkb.NewContextified(g)}, "log-rotate", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetNoStandalone() }, } }
func NewCmdCtlReload(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "reload", Usage: "Reload config file", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdCtlReload{libkb.NewContextified(g)}, "reload", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetNoStandalone() }, } }
func NewCmdCtlAppExit(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "app-exit", Usage: "Exit the Keybase app", Action: func(c *cli.Context) { cl.ChooseCommand(newCmdCtlAppExit(g), "app-exit", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetNoStandalone() }, } }
func NewCmdCtlStop(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "stop", Usage: "Stop the background keybase service", Action: func(c *cli.Context) { cl.ChooseCommand(NewCmdCtlStopRunner(g), "stop", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetNoStandalone() }, } }
func NewCmdLaunchdRestart(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "restart", Usage: "Restart a Keybase launchd service", ArgumentHelp: "<label>", Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdLaunchdActionRunner(g, "restart"), "restart", c) }, } }
func NewCmdBase62Encode(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "encode", Usage: "base62 encode", Flags: []cli.Flag{}, Action: func(c *cli.Context) { cl.ChooseCommand(NewBase62EncodeRunner(g), "encode", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) }, } }
// newCmdUpdateCheckInUse is called by updater to see if Keybase is currently in use func newCmdUpdateCheckInUse(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "check-in-use", ArgumentHelp: "", Usage: "Check if we are in use (safe for restart)", Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(newCmdUpdateCheckInUseRunner(g), "check-in-use", c) }, } }
func NewCmdFuseStatus(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "status", Flags: []cli.Flag{ cli.StringFlag{ Name: "b, bundle-version", Usage: "Bundle version", }, }, Usage: "Status for fuse, including for installing or updating", Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdFuseStatusRunner(g), "status", c) }, } }
func NewCmdLaunchdList(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "list", Usage: "List keybase launchd services", Flags: []cli.Flag{ cli.StringFlag{ Name: "f, format", Usage: "Format for output. Specify 'j' for JSON or blank for default.", }, }, Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdLaunchdListRunner(g), "list", c) }, } }
func NewCmdLogSend(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "send", Usage: "Send recent debug logs to keybase", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdLogSend{Contextified: libkb.NewContextified(g)}, "send", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) }, Flags: []cli.Flag{ cli.IntFlag{ Name: "n", Usage: "Number of lines in each log file", }, }, } }
func newCmdUpdateNotify(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "notify", ArgumentHelp: "<event>", Usage: "Notify the service about an update event", Flags: []cli.Flag{ cli.BoolFlag{ Name: "f, force", Usage: "Force action", }, }, Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(newCmdUpdateNotifyRunner(g), "notify", c) }, } }
func NewCmdWatchdog(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "watchdog", Usage: "Start, watch and prop up the background service", Action: func(c *cli.Context) { cl.ChooseCommand(&CmdWatchdog{Contextified: libkb.NewContextified(g)}, "watchdog", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) }, Flags: []cli.Flag{ cli.IntFlag{ Name: "n, num-restarts", Value: numRestartsDefault, Usage: "specify the number of retries before giving up", }, }, } }
func NewCmdVersion(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "version", Usage: "Print out version and build information", Flags: []cli.Flag{ cli.StringFlag{ Name: "f, format", Usage: "Alternate format for version output. Specify 's' for simple (1.2.3) or 'v' for verbose. Default (blank) includes build number (1.2.3-400).", }, cli.BoolFlag{ Name: "S, no-service", Usage: "Don't report on the service's build information", }, }, Action: func(c *cli.Context) { cl.ChooseCommand(NewCmdVersionRunner(g), "verison", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) }, } }
// NewCmdCtlRestart constructs ctl restart command func NewCmdCtlRestart(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "restart", Usage: "Restart the keybase services", Flags: []cli.Flag{ cli.StringFlag{ Name: "include", Usage: fmt.Sprintf("Stop only specified components, comma separated. Specify %v.", availableCtlComponents), }, cli.StringFlag{ Name: "exclude", Usage: fmt.Sprintf("Stop all except excluded components, comma separated. Specify %v.", availableCtlComponents), }, }, Action: func(c *cli.Context) { cl.ChooseCommand(&cmdCtlRestart{Contextified: libkb.NewContextified(g)}, "restart", c) cl.SetForkCmd(libcmdline.NoFork) cl.SetLogForward(libcmdline.LogForwardNone) cl.SetNoStandalone() }, } }
func NewCmdUninstall(cl *libcmdline.CommandLine, g *libkb.GlobalContext) cli.Command { return cli.Command{ Name: "uninstall", Flags: []cli.Flag{ cli.StringFlag{ Name: "o, format", Usage: "Format for output. Specify 'j' for JSON or blank for default.", }, cli.StringFlag{ Name: "c, components", Usage: "Components to uninstall, comma separated. Specify 'cli' for command line, 'service' for service, 'kbfs' for KBFS, or blank for all.", }, }, ArgumentHelp: "", Usage: "Uninstalls Keybase components", Action: func(c *cli.Context) { cl.SetLogForward(libcmdline.LogForwardNone) cl.SetForkCmd(libcmdline.NoFork) cl.ChooseCommand(NewCmdUninstallRunner(g), "uninstall", c) }, } }