@@ -2,12 +2,11 @@ package cmd
22
33import (
44 "encoding/json"
5- "errors"
65 "fmt"
7- "io/ioutil"
86 "os"
97 "strings"
108
9+ "github.com/pkg/errors"
1110 "github.com/spf13/cobra"
1211
1312 "github.com/sliveryou/grom/util"
@@ -47,7 +46,7 @@ var convertCmd = &cobra.Command{
4746 Long : "Convert mysql table fields to golang model structure by information_schema.columns and information_schema.statistics" ,
4847 Example : " grom convert -n ./grom.json\n " +
4948 " grom convert -H localhost -P 3306 -u user -p password -d database -t table -e INITIALISM,FIELD_COMMENT,JSON_TAG,GORM_V2_TAG --package PACKAGE_NAME --struct STRUCT_NAME" ,
50- Run : convertFunc ,
49+ RunE : convertFunc ,
5150}
5251
5352func init () {
@@ -66,56 +65,49 @@ func init() {
6665 rootCmd .AddCommand (convertCmd )
6766}
6867
69- func convertFunc (cmd * cobra.Command , args []string ) {
68+ func convertFunc (_ * cobra.Command , _ []string ) error {
7069 config , err := getCmdConfig ()
7170 if err != nil {
72- return
71+ return errors . WithMessage ( err , "getCmdConfig err" )
7372 }
7473
75- out , err := util .ConvertTable (config )
74+ out , err := util .ConvertTable (* config )
7675 if err != nil {
77- return
76+ return errors . WithMessage ( err , "util.ConvertTable err" )
7877 }
7978
8079 if outputFilePath != "" {
81- saveOutputToFile (out )
80+ return saveOutputToFile (out )
8281 } else {
8382 fmt .Println (out )
8483 }
84+
85+ return nil
8586}
8687
87- func saveOutputToFile (out string ) {
88- f , err := os .Create (outputFilePath )
88+ func saveOutputToFile (out string ) error {
89+ err := os .WriteFile (outputFilePath , [] byte ( out ), 0o666 )
8990 if err != nil {
90- fmt .Println (err )
91- return
91+ return errors .WithMessage (err , "os.WriteFile err" )
9292 }
93- defer f .Close ()
9493
95- _ , err = f .Write ([]byte (out ))
96- if err != nil {
97- fmt .Println (err )
98- return
99- }
94+ fmt .Println ("write output in:" , outputFilePath )
10095
101- fmt .Println (out )
102- fmt .Println ("\n write output in:" , outputFilePath )
96+ return nil
10397}
10498
105- func getCmdConfig () (util.CMDConfig , error ) {
99+ func getCmdConfig () (* util.CMDConfig , error ) {
106100 config := util.CMDConfig {}
107101
108102 if filePath != "" {
109- content , err := ioutil .ReadFile (filePath )
103+ content , err := os .ReadFile (filePath )
110104 if err != nil {
111- fmt .Println (err )
112- return util.CMDConfig {}, err
105+ return nil , errors .WithMessage (err , "os.ReadFile err" )
113106 }
114107
115108 err = json .Unmarshal (content , & config )
116109 if err != nil {
117- fmt .Println (err )
118- return util.CMDConfig {}, err
110+ return nil , errors .WithMessage (err , "json.Unmarshal err" )
119111 }
120112 }
121113
@@ -148,9 +140,7 @@ func getCmdConfig() (util.CMDConfig, error) {
148140 for _ , v := range enable {
149141 service := strings .ToUpper (v )
150142 if _ , ok := validServices [service ]; ! ok {
151- err := errors .New ("enabled service is invalid, service: " + service )
152- fmt .Println (err )
153- return util.CMDConfig {}, err
143+ return nil , errors .New ("enabled service is invalid, service: " + service )
154144 }
155145
156146 switch service {
@@ -180,5 +170,5 @@ func getCmdConfig() (util.CMDConfig, error) {
180170 }
181171 }
182172
183- return config , nil
173+ return & config , nil
184174}
0 commit comments