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  }