From 974ca9a19bddf7d115b92e415034ab0814b10d15 Mon Sep 17 00:00:00 2001 From: Jason Bao Date: Tue, 4 Nov 2025 16:01:07 -0800 Subject: [PATCH] Add resource create --- cmd/resource/create.go | 40 ++++++++++++++++++++++++++++++++++++++++ cmd/resource/resource.go | 17 +++++++++++++++++ cmd/root.go | 2 ++ 3 files changed, 59 insertions(+) create mode 100644 cmd/resource/create.go create mode 100644 cmd/resource/resource.go diff --git a/cmd/resource/create.go b/cmd/resource/create.go new file mode 100644 index 0000000..871d127 --- /dev/null +++ b/cmd/resource/create.go @@ -0,0 +1,40 @@ +package resource + +import ( + "fmt" + + "github.com/major-technology/cli/singletons" + "github.com/major-technology/cli/utils" + "github.com/spf13/cobra" +) + +// createCmd represents the resource create command +var createCmd = &cobra.Command{ + Use: "create", + Short: "Open the resource creation page in your browser", + Long: `Open the resource creation page in your default browser.`, + Run: func(cmd *cobra.Command, args []string) { + cobra.CheckErr(runCreate(cmd)) + }, +} + +func runCreate(cmd *cobra.Command) error { + // Get config to access frontend URI + cfg := singletons.GetConfig() + if cfg == nil { + return fmt.Errorf("configuration not initialized") + } + + // Construct the resource creation URL + resourceURL := fmt.Sprintf("%s/resources?action=add", cfg.FrontendURI) + + // Open the URL in the browser + if err := utils.OpenBrowser(resourceURL); err != nil { + // If browser fails to open, still show the URL + cmd.Printf("Failed to open browser automatically. Please visit:\n%s\n", resourceURL) + return nil + } + + cmd.Printf("Opening resource creation page in your browser:\n%s\n", resourceURL) + return nil +} diff --git a/cmd/resource/resource.go b/cmd/resource/resource.go new file mode 100644 index 0000000..0b09ab8 --- /dev/null +++ b/cmd/resource/resource.go @@ -0,0 +1,17 @@ +package resource + +import ( + "github.com/spf13/cobra" +) + +// Cmd represents the resource command +var Cmd = &cobra.Command{ + Use: "resource", + Short: "Resource management commands", + Long: `Commands for creating and managing resources.`, +} + +func init() { + // Add resource subcommands + Cmd.AddCommand(createCmd) +} diff --git a/cmd/root.go b/cmd/root.go index 0b16507..ac18923 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -7,6 +7,7 @@ import ( "github.com/major-technology/cli/clients/config" "github.com/major-technology/cli/cmd/app" "github.com/major-technology/cli/cmd/org" + "github.com/major-technology/cli/cmd/resource" "github.com/major-technology/cli/cmd/user" "github.com/major-technology/cli/singletons" "github.com/spf13/cobra" @@ -44,6 +45,7 @@ func init() { rootCmd.AddCommand(user.Cmd) rootCmd.AddCommand(org.Cmd) rootCmd.AddCommand(app.Cmd) + rootCmd.AddCommand(resource.Cmd) } func initConfig() {