From 19d45681e000b5c00243fbf50d34093156389c0e Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Tue, 19 Mar 2024 11:02:43 -0700 Subject: [PATCH 1/3] Add project create command structure --- cmd/projects/create.go | 46 ++++++++++++++++++++++++++++++++++++++++ cmd/projects/list.go | 10 +++++++-- cmd/projects/projects.go | 13 +++++++++--- cmd/root.go | 2 +- 4 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 cmd/projects/create.go diff --git a/cmd/projects/create.go b/cmd/projects/create.go new file mode 100644 index 00000000..7343e2e8 --- /dev/null +++ b/cmd/projects/create.go @@ -0,0 +1,46 @@ +package projects + +import ( + "github.com/spf13/cobra" + "github.com/spf13/viper" +) + +type createCmd struct { + Cmd *cobra.Command +} + +func NewCreateCmd() createCmd { + cmd := &cobra.Command{ + Use: "create", + Short: "Create a new project", + Long: "Create a new project", + PreRunE: validate, + RunE: runCreate, + } + + var data string + cmd.Flags().StringVarP( + &data, + "data", + "d", + "", + "Input data in JSON", + ) + err := cmd.MarkFlagRequired("data") + if err != nil { + panic(err) + } + err = viper.BindPFlag("data", cmd.Flags().Lookup("data")) + if err != nil { + panic(err) + } + + return createCmd{ + Cmd: cmd, + } +} + +// runCreate creates a new project. +func runCreate(cmd *cobra.Command, args []string) error { + return nil +} diff --git a/cmd/projects/list.go b/cmd/projects/list.go index f45a2b22..ee553f41 100644 --- a/cmd/projects/list.go +++ b/cmd/projects/list.go @@ -12,7 +12,11 @@ import ( "ld-cli/internal/projects" ) -func NewListCmd() *cobra.Command { +type listCmd struct { + Cmd *cobra.Command +} + +func NewListCmd() listCmd { cmd := &cobra.Command{ Use: "list", Short: "Return a list of projects", @@ -21,7 +25,9 @@ func NewListCmd() *cobra.Command { RunE: runList, } - return cmd + return listCmd{ + Cmd: cmd, + } } // validate ensures the flags are valid before using them. diff --git a/cmd/projects/projects.go b/cmd/projects/projects.go index a3023d05..f55deb65 100644 --- a/cmd/projects/projects.go +++ b/cmd/projects/projects.go @@ -4,14 +4,21 @@ import ( "github.com/spf13/cobra" ) -func NewProjectsCmd() *cobra.Command { +type projectCmd struct { + Cmd *cobra.Command +} + +func NewProjectsCmd() projectCmd { cmd := &cobra.Command{ Use: "projects", Short: "Make requests (list, create, etc.) on projects", Long: "Make requests (list, create, etc.) on projects", } - cmd.AddCommand(NewListCmd()) + cmd.AddCommand(NewCreateCmd().Cmd) + cmd.AddCommand(NewListCmd().Cmd) - return cmd + return projectCmd{ + Cmd: cmd, + } } diff --git a/cmd/root.go b/cmd/root.go index 94d92d3b..fc0d0c53 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -77,6 +77,6 @@ func init() { rootCmd.SetErrPrefix("") - rootCmd.AddCommand(projects.NewProjectsCmd()) + rootCmd.AddCommand(projects.NewProjectsCmd().Cmd) rootCmd.AddCommand(setupCmd) } From eda7fd8a7dfaba5f0072513eef83e15ed15c24f3 Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Tue, 19 Mar 2024 11:12:41 -0700 Subject: [PATCH 2/3] Remove extra struct types --- cmd/projects/create.go | 19 ++++++++++--------- cmd/projects/list.go | 10 ++-------- cmd/projects/projects.go | 14 ++++---------- cmd/root.go | 2 +- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/cmd/projects/create.go b/cmd/projects/create.go index 7343e2e8..9b58151e 100644 --- a/cmd/projects/create.go +++ b/cmd/projects/create.go @@ -1,15 +1,13 @@ package projects import ( + "fmt" + "github.com/spf13/cobra" "github.com/spf13/viper" ) -type createCmd struct { - Cmd *cobra.Command -} - -func NewCreateCmd() createCmd { +func NewCreateCmd() *cobra.Command { cmd := &cobra.Command{ Use: "create", Short: "Create a new project", @@ -35,12 +33,15 @@ func NewCreateCmd() createCmd { panic(err) } - return createCmd{ - Cmd: cmd, - } + return cmd } -// runCreate creates a new project. func runCreate(cmd *cobra.Command, args []string) error { + fmt.Println( + ">>> runCreate", + viper.GetString("accessToken"), + "::", + viper.GetString("data"), + ) return nil } diff --git a/cmd/projects/list.go b/cmd/projects/list.go index ee553f41..f45a2b22 100644 --- a/cmd/projects/list.go +++ b/cmd/projects/list.go @@ -12,11 +12,7 @@ import ( "ld-cli/internal/projects" ) -type listCmd struct { - Cmd *cobra.Command -} - -func NewListCmd() listCmd { +func NewListCmd() *cobra.Command { cmd := &cobra.Command{ Use: "list", Short: "Return a list of projects", @@ -25,9 +21,7 @@ func NewListCmd() listCmd { RunE: runList, } - return listCmd{ - Cmd: cmd, - } + return cmd } // validate ensures the flags are valid before using them. diff --git a/cmd/projects/projects.go b/cmd/projects/projects.go index f55deb65..55d970ae 100644 --- a/cmd/projects/projects.go +++ b/cmd/projects/projects.go @@ -4,21 +4,15 @@ import ( "github.com/spf13/cobra" ) -type projectCmd struct { - Cmd *cobra.Command -} - -func NewProjectsCmd() projectCmd { +func NewProjectsCmd() *cobra.Command { cmd := &cobra.Command{ Use: "projects", Short: "Make requests (list, create, etc.) on projects", Long: "Make requests (list, create, etc.) on projects", } - cmd.AddCommand(NewCreateCmd().Cmd) - cmd.AddCommand(NewListCmd().Cmd) + cmd.AddCommand(NewCreateCmd()) + cmd.AddCommand(NewListCmd()) - return projectCmd{ - Cmd: cmd, - } + return cmd } diff --git a/cmd/root.go b/cmd/root.go index fc0d0c53..94d92d3b 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -77,6 +77,6 @@ func init() { rootCmd.SetErrPrefix("") - rootCmd.AddCommand(projects.NewProjectsCmd().Cmd) + rootCmd.AddCommand(projects.NewProjectsCmd()) rootCmd.AddCommand(setupCmd) } From ffe2b5fb0e7936ed8b2de71d773309fd3df41930 Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Tue, 19 Mar 2024 11:13:42 -0700 Subject: [PATCH 3/3] Remove println --- cmd/projects/create.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/cmd/projects/create.go b/cmd/projects/create.go index 9b58151e..45d8dfa3 100644 --- a/cmd/projects/create.go +++ b/cmd/projects/create.go @@ -1,8 +1,6 @@ package projects import ( - "fmt" - "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -37,11 +35,5 @@ func NewCreateCmd() *cobra.Command { } func runCreate(cmd *cobra.Command, args []string) error { - fmt.Println( - ">>> runCreate", - viper.GetString("accessToken"), - "::", - viper.GetString("data"), - ) return nil }