// SSH opens an interactive shell with a machine in the cluster. func (c *Client) SSH(argv []string) error { usage := `Open an interactive shell on a machine in the cluster given a unit or machine id. If an optional <command> is provided, that command is run remotely, and the results returned. Usage: deisctl ssh <target> [<command>...] ` // parse command-line arguments args, err := docopt.Parse(usage, argv, true, "", true) if err != nil { return err } target := args["<target>"].(string) // handle help explicitly since docopt parsing is relaxed if target == "--help" { fmt.Println(usage) os.Exit(0) } var vargs []string if v, ok := args["<command>"]; ok { vargs = v.([]string) } return cmd.SSH(target, vargs, c.Backend) }
// SSH opens an interactive shell with a machine in the cluster. func (c *Client) SSH(argv []string) error { usage := `Open an interactive shell on a machine in the cluster given a unit or machine id. Usage: deisctl ssh <target> ` // parse command-line arguments args, err := docopt.Parse(usage, argv, true, "", false) if err != nil { return err } return cmd.SSH(args["<target>"].(string), c.Backend) }
// SSH opens an interactive shell with a machine in the cluster. func (c *Client) SSH(argv []string) error { usage := `Open an interactive shell on a machine in the cluster given a unit or machine id. If an optional <command> is provided, that command is run remotely, and the results returned. Usage: deisctl ssh <target> [<command>...] ` // parse command-line arguments args, err := docopt.Parse(usage, argv, true, "", true) if err != nil { return err } var vargs []string if v, ok := args["<command>"]; ok { vargs = v.([]string) } return cmd.SSH(args["<target>"].(string), vargs, c.Backend) }