diff --git a/cmd/commercemanager.go b/cmd/commercemanager.go index 154148e8..de1a6f3a 100644 --- a/cmd/commercemanager.go +++ b/cmd/commercemanager.go @@ -4,8 +4,6 @@ import ( "fmt" "github.com/spf13/cobra" "net/url" - "os/exec" - "runtime" ) var cmCommand = &cobra.Command{ @@ -29,18 +27,7 @@ var cmCommand = &cobra.Command{ fmt.Printf("Don't know where Commerce Manager is for $EPCC_API_BASE_URL=%s \n", u) return err } - - switch runtime.GOOS { - case "linux": - err = exec.Command("xdg-open", cmUrl).Start() - case "windows": - err = exec.Command("rundll32", "url.dll,FileProtocolHandler", cmUrl).Start() - case "darwin": - err = exec.Command("open", cmUrl).Start() - default: - err = fmt.Errorf("unsupported platform") - } - + err = OpenUrl(cmUrl) if err != nil { fmt.Println(err) return err diff --git a/cmd/docs.go b/cmd/docs.go index 41943a6b..866f40c8 100644 --- a/cmd/docs.go +++ b/cmd/docs.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "github.com/elasticpath/epcc-cli/external/resources" "github.com/spf13/cobra" ) @@ -9,6 +10,18 @@ var docsCommand = &cobra.Command{ Use: "docs ", Short: "Opens up API documentation for the resource", RunE: func(cmd *cobra.Command, args []string) error { - return fmt.Errorf("This function is not implemented") + if len(args) != 0 { + resource := resources.Resources[args[0]] + if len(resource.Docs) > 0 { + url := resource.Docs + err := OpenUrl(url) + if err != nil { + return nil + } + } else { + return fmt.Errorf("You must supply a valid resource type to the docs command") + } + } + return fmt.Errorf("You must supply a resource type to the docs command") }, } diff --git a/cmd/share.go b/cmd/share.go new file mode 100644 index 00000000..52a39308 --- /dev/null +++ b/cmd/share.go @@ -0,0 +1,23 @@ +package cmd + +import ( + "fmt" + "os/exec" + "runtime" +) + +func OpenUrl(cmUrl string) error { + + switch runtime.GOOS { + case "linux": + exec.Command("xdg-open", cmUrl).Start() + case "windows": + exec.Command("rundll32", "url.dll,FileProtocolHandler", cmUrl).Start() + case "darwin": + exec.Command("open", cmUrl).Start() + default: + return fmt.Errorf("unsupported platform") + } + + return nil +}