11package add
22
33import (
4+ "fmt"
5+
46 "github.com/spf13/cobra"
57
68 "github.com/jzero-io/jzero/cmd/jzero/internal/command/add/addapi"
79 "github.com/jzero-io/jzero/cmd/jzero/internal/command/add/addproto"
810 "github.com/jzero-io/jzero/cmd/jzero/internal/command/add/addsql"
11+ "github.com/jzero-io/jzero/cmd/jzero/internal/config"
12+ "github.com/jzero-io/jzero/cmd/jzero/internal/pkg/console"
913)
1014
1115// addCmd represents the add command
@@ -19,27 +23,30 @@ var addApiCmd = &cobra.Command{
1923 Use : "api" ,
2024 Short : `Add api` ,
2125 RunE : func (cmd * cobra.Command , args []string ) error {
22- return addapi .Run ( args )
26+ return runAddStage ( "api" , args , addapi .Run )
2327 },
24- SilenceUsage : true ,
28+ SilenceUsage : true ,
29+ SilenceErrors : true ,
2530}
2631
2732var addProtoCmd = & cobra.Command {
2833 Use : "proto" ,
2934 Short : `Add proto` ,
3035 RunE : func (cmd * cobra.Command , args []string ) error {
31- return addproto .Run ( args )
36+ return runAddStage ( "proto" , args , addproto .Run )
3237 },
33- SilenceUsage : true ,
38+ SilenceUsage : true ,
39+ SilenceErrors : true ,
3440}
3541
3642var addSqlCmd = & cobra.Command {
3743 Use : "sql" ,
3844 Short : `Add sql` ,
3945 RunE : func (cmd * cobra.Command , args []string ) error {
40- return addsql .Run ( args )
46+ return runAddStage ( "sql" , args , addsql .Run )
4147 },
42- SilenceUsage : true ,
48+ SilenceUsage : true ,
49+ SilenceErrors : true ,
4350}
4451
4552func GetCommand () * cobra.Command {
@@ -50,3 +57,33 @@ func GetCommand() *cobra.Command {
5057 addCmd .AddCommand (addSqlCmd )
5158 return addCmd
5259}
60+
61+ func runAddStage (kind string , args []string , fn func ([]string ) (string , error )) error {
62+ target , err := fn (args )
63+ if config .C .Add .Output != "file" || config .C .Quiet {
64+ return err
65+ }
66+
67+ title := console .Green ("Add" ) + " " + console .Yellow (kind )
68+ fmt .Printf ("%s\n " , console .BoxHeader ("" , title ))
69+
70+ if err != nil {
71+ if target != "" {
72+ fmt .Printf ("%s\n " , console .BoxErrorItem (target ))
73+ }
74+ for _ , line := range console .NormalizeErrorLines (err .Error ()) {
75+ fmt .Printf ("%s\n " , console .BoxDetailItem (line ))
76+ }
77+ fmt .Printf ("%s\n \n " , console .BoxErrorFooter ())
78+ if config .C .Quiet {
79+ return err
80+ }
81+ return console .MarkRenderedError (err )
82+ }
83+
84+ if target != "" {
85+ fmt .Printf ("%s\n " , console .BoxItem (target ))
86+ }
87+ fmt .Printf ("%s\n \n " , console .BoxSuccessFooter ())
88+ return nil
89+ }
0 commit comments