github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/v2/ssh_code_command.go (about) 1 package v2 2 3 import ( 4 "github.com/liamawhite/cli-with-i18n/actor/sharedaction" 5 "github.com/liamawhite/cli-with-i18n/actor/v2action" 6 "github.com/liamawhite/cli-with-i18n/command" 7 "github.com/liamawhite/cli-with-i18n/command/v2/shared" 8 ) 9 10 //go:generate counterfeiter . SSHCodeActor 11 12 type SSHCodeActor interface { 13 GetSSHPasscode() (string, error) 14 } 15 16 type SSHCodeCommand struct { 17 usage interface{} `usage:"CF_NAME ssh-code"` 18 relatedCommands interface{} `related_commands:"curl, ssh"` 19 20 UI command.UI 21 Config command.Config 22 SharedActor command.SharedActor 23 Actor SSHCodeActor 24 } 25 26 func (cmd *SSHCodeCommand) Setup(config command.Config, ui command.UI) error { 27 cmd.UI = ui 28 cmd.Config = config 29 cmd.SharedActor = sharedaction.NewActor(config) 30 31 ccClient, uaaClient, err := shared.NewClients(config, ui, true) 32 if err != nil { 33 return err 34 } 35 cmd.Actor = v2action.NewActor(ccClient, uaaClient, config) 36 37 return nil 38 } 39 40 func (cmd SSHCodeCommand) Execute(args []string) error { 41 err := cmd.SharedActor.CheckTarget(cmd.Config, false, false) 42 if err != nil { 43 return shared.HandleError(err) 44 } 45 46 code, err := cmd.Actor.GetSSHPasscode() 47 cmd.UI.DisplayText("{{.SSHCode}}", map[string]interface{}{"SSHCode": code}) 48 return err 49 }