func runRun(c *cli.Context) { if runtime.GOOS == "windows" { printFatal("Not supported on Windows") os.Exit(2) } stack := mustStack(c) if c.String("service") != "" && stack.Framework != "docker" { printFatal("The service option only applies to docker stacks") os.Exit(2) } serverName := c.String("server") if !c.IsSet("service") { if len(c.Args()) != 1 { cli.ShowCommandHelp(c, "run") os.Exit(2) } } userCommand := "" if len(c.Args()) == 1 { userCommand = c.Args()[0] } servers, err := client.Servers(stack.Uid) if err != nil { printFatal(err.Error()) } server, err := findServer(servers, serverName) if err != nil { printFatal(err.Error()) } if server == nil { printFatal("Server '" + serverName + "' not found") } if c.String("service") != "" { // fetch service information for existing server/command service, err := client.GetService(stack.Uid, c.String("service"), &server.Uid, &userCommand) must(err) userCommand = service.WrapCommand } includeTty := c.String("service") != "" err = SshToServerForCommand(*server, userCommand, includeTty) if err != nil { printFatal(err.Error()) } }
func runNewBackup(c *cli.Context) { stack := mustStack(c) var flagDbTypes *string if c.IsSet("dbtypes") { flagDbTypes = new(string) *flagDbTypes = c.String("dbtypes") } var flagFrequency *string if c.IsSet("frequency") { flagFrequency = new(string) *flagFrequency = c.String("frequency") } var flagKeep *int if c.IsSet("keep") { flagKeep = new(int) *flagKeep = c.Int("keep") } var flagGzip *bool if c.IsSet("gzip") { flagGzip = new(bool) *flagGzip = c.Bool("gzip") } var flagExcludetables *string if c.IsSet("exclude-tables") { flagExcludetables = new(string) *flagExcludetables = c.String("exclude-tables") } var flagRunonreplica *bool if c.IsSet("run-on-replica") { flagRunonreplica = new(bool) *flagRunonreplica = c.Bool("run-on-replica") } err := client.NewBackup(stack.Uid, flagDbTypes, flagFrequency, flagKeep, flagGzip, flagExcludetables, flagRunonreplica) if err != nil { printFatal("Error during backup creation: " + err.Error()) return } fmt.Println("queued for creation") }