github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/integration/assets/test_plugin_v7/test_plugin_v7.go (about) 1 // +build V7 2 3 package main 4 5 import ( 6 "fmt" 7 8 plugin "code.cloudfoundry.org/cli/plugin/v7" 9 ) 10 11 type Test1 struct { 12 } 13 14 func (c *Test1) Run(cliConnection plugin.CliConnection, args []string) { 15 commandName := args[0] 16 17 switch commandName { 18 case "AccessToken": 19 result, err := cliConnection.AccessToken() 20 if err != nil { 21 fmt.Printf("Error %s: %s\n", commandName, err) 22 } else { 23 fmt.Println("Done AccessToken:", result) 24 } 25 case "ApiEndpoint": 26 result, err := cliConnection.ApiEndpoint() 27 if err != nil { 28 fmt.Printf("Error %s: %s\n", commandName, err) 29 } else { 30 fmt.Println("Done ApiEndpoint:", result) 31 } 32 case "GetApp": 33 result, err := cliConnection.GetApp(args[1]) 34 if err != nil { 35 fmt.Printf("Error %s: %s\n", commandName, err) 36 } else { 37 fmt.Println("Done GetApp:", result) 38 } 39 case "GetApps": 40 apps, err := cliConnection.GetApps() 41 if err != nil { 42 fmt.Printf("Error %s: %s\n", commandName, err) 43 } else if len(apps) == 0 { 44 fmt.Println("No apps in the current space") 45 } else { 46 fmt.Println("Current Apps:") 47 for _, app := range apps { 48 fmt.Printf("result: %+v, name: %s, guid: %s, ", app, app.Name, app.GUID) 49 fmt.Printf("metadata: %+v\n", *app.Metadata) 50 } 51 } 52 case "GetCurrentOrg": 53 result, err := cliConnection.GetCurrentOrg() 54 if err != nil { 55 fmt.Printf("Error %s: %s\n", commandName, err) 56 } else { 57 fmt.Printf("Done GetCurrentOrg:, result:%+v, name: %s, guid: %s\n", result, result.Name, result.GUID) 58 } 59 case "GetCurrentSpace": 60 result, err := cliConnection.GetCurrentSpace() 61 if err != nil { 62 fmt.Printf("Error %s: %s\n", commandName, err) 63 } else { 64 fmt.Printf("Done GetCurrentSpace:, result:%+v, name: %s, guid: %s\n", result, result.Name, result.GUID) 65 } 66 case "GetOrg": 67 result, err := cliConnection.GetOrg(args[1]) 68 if err != nil { 69 fmt.Printf("Error %s: %s\n", commandName, err) 70 } else { 71 fmt.Printf("Done GetOrg: name: %s, guid: %s, everything: %+v\n", result.Name, result.GUID, result) 72 } 73 case "IsLoggedIn": 74 result, err := cliConnection.IsLoggedIn() 75 if err != nil { 76 fmt.Printf("Error %s: %s\n", commandName, err) 77 } else { 78 fmt.Printf("Done IsLoggedIn: %v", result) 79 } 80 case "IsSkipSSLValidation": 81 result, err := cliConnection.IsSkipSSLValidation() 82 if err != nil { 83 fmt.Printf("Error %s: %s\n", commandName, err) 84 } else { 85 fmt.Println("Done IsSkipSSLValidation:", result) 86 } 87 case "Username": 88 result, err := cliConnection.Username() 89 if err != nil { 90 fmt.Printf("Error %s: %s\n", commandName, err) 91 } else { 92 fmt.Println("Done Username:", result) 93 } 94 case "TestPluginCommandWithAliasV7", "Cool-V7": 95 fmt.Println("You called Test Plugin Command V7 With Alias!") 96 case "CoolTest": 97 fmt.Println("I am a test plugin") 98 } 99 } 100 func (c *Test1) GetMetadata() plugin.PluginMetadata { 101 return plugin.PluginMetadata{ 102 Name: "CF-CLI-Integration-Test-Plugin", 103 Version: plugin.VersionType{ 104 Major: 6, 105 Minor: 0, 106 Build: 0, 107 }, 108 MinCliVersion: plugin.VersionType{ 109 Major: 6, 110 Minor: 0, 111 Build: 0, 112 }, 113 Commands: []plugin.Command{ 114 {Name: "AccessToken"}, 115 {Name: "ApiEndpoint"}, 116 {Name: "GetApp"}, 117 {Name: "GetApps"}, 118 {Name: "GetCurrentOrg"}, 119 {Name: "GetCurrentSpace"}, 120 {Name: "GetOrg"}, 121 {Name: "IsLoggedIn"}, 122 {Name: "IsSkipSSLValidation"}, 123 {Name: "Username"}, 124 { 125 Name: "TestPluginCommandWithAliasV7", 126 Alias: "Cool-V7", 127 HelpText: "This is my plugin help test. Banana.", 128 UsageDetails: plugin.Usage{ 129 Usage: "I R Usage", 130 Options: map[string]string{ 131 "--dis-flag": "is a flag", 132 }, 133 }, 134 }, 135 {Name: "CoolTest"}, 136 }, 137 } 138 } 139 140 // func uninstalling() { 141 // os.Remove(filepath.Join(os.TempDir(), "uninstall-test-file-for-test_1.exe")) 142 // } 143 144 func main() { 145 plugin.Start(new(Test1)) 146 }