@@ -6,19 +6,12 @@ import (
66 "path/filepath"
77 "strings"
88
9- "github.com/codegangsta /cli"
9+ "github.com/urfave /cli"
1010)
1111
12- func exitOnError (err error ) {
13- log .SetFlags (0 )
14- if err != nil {
15- log .Fatalln (err )
16- }
17- }
18-
1912//Parse table to copy to from given filename or passed flags
2013func parseTableName (c * cli.Context , filename string ) string {
21- tableName := c .GlobalString ("table" )
14+ tableName := c .String ("table" )
2215 if tableName == "" {
2316 if filename == "" {
2417 // if no filename is not set, we reading stdin
@@ -33,7 +26,7 @@ func parseTableName(c *cli.Context, filename string) string {
3326
3427func getDataType (c * cli.Context ) string {
3528 dataType := "json"
36- if c .GlobalBool ("jsonb" ) {
29+ if c .Bool ("jsonb" ) {
3730 dataType = "jsonb"
3831 }
3932
@@ -46,62 +39,62 @@ func main() {
4639 app .Version = "1.2"
4740 app .Usage = "Import JSON and CSV into PostgreSQL the easy way"
4841 app .Flags = []cli.Flag {
49- cli.StringFlag {
42+ & cli.StringFlag {
5043 Name : "dbname, db" ,
5144 Value : "postgres" ,
5245 Usage : "database to connect to" ,
53- EnvVar : "DB_NAME" ,
46+ EnvVars : [] string { "DB_NAME" } ,
5447 },
55- cli.StringFlag {
48+ & cli.StringFlag {
5649 Name : "host" ,
5750 Value : "localhost" ,
5851 Usage : "host name" ,
59- EnvVar : "DB_HOST" ,
52+ EnvVars : [] string { "DB_HOST" } ,
6053 },
61- cli.StringFlag {
54+ & cli.StringFlag {
6255 Name : "port" ,
6356 Value : "5432" ,
6457 Usage : "port" ,
65- EnvVar : "DB_PORT" ,
58+ EnvVars : [] string { "DB_PORT" } ,
6659 },
67- cli.StringFlag {
60+ & cli.StringFlag {
6861 Name : "username, user" ,
6962 Value : "postgres" ,
7063 Usage : "username" ,
71- EnvVar : "DB_USER" ,
64+ EnvVars : [] string { "DB_USER" } ,
7265 },
73- cli.BoolFlag {
66+ & cli.BoolFlag {
7467 Name : "ssl" ,
7568 Usage : "require ssl mode" ,
7669 },
77- cli.StringFlag {
70+ & cli.StringFlag {
7871 Name : "pass, pw" ,
7972 Value : "" ,
8073 Usage : "password" ,
81- EnvVar : "DB_PASS" ,
74+ EnvVars : [] string { "DB_PASS" } ,
8275 },
83- cli.StringFlag {
76+ & cli.StringFlag {
8477 Name : "schema" ,
8578 Value : "import" ,
8679 Usage : "database schema" ,
87- EnvVar : "DB_SCHEMA" ,
80+ EnvVars : [] string { "DB_SCHEMA" } ,
8881 },
89- cli.StringFlag {
82+ & cli.StringFlag {
9083 Name : "table" ,
9184 Usage : "destination table" ,
92- EnvVar : "DB_TABLE" ,
85+ EnvVars : [] string { "DB_TABLE" } ,
9386 },
94- cli.BoolFlag {
87+ & cli.BoolFlag {
9588 Name : "jsonb" ,
9689 Usage : "use JSONB data type" ,
9790 },
98- cli.BoolFlag {
91+ & cli.BoolFlag {
9992 Name : "ignore-errors" ,
10093 Usage : "halt transaction on inconsistencies" ,
10194 },
10295 }
10396
104- app .Commands = []cli.Command {
97+ app .Commands = []* cli.Command {
10598 {
10699 Name : "json" ,
107100 Usage : "Import newline-delimited JSON objects into database" ,
@@ -110,8 +103,8 @@ func main() {
110103
111104 filename := c .Args ().First ()
112105
113- ignoreErrors := c .GlobalBool ("ignore-errors" )
114- schema := c .GlobalString ("schema" )
106+ ignoreErrors := c .Bool ("ignore-errors" )
107+ schema := c .String ("schema" )
115108 tableName := parseTableName (c , filename )
116109 dataType := getDataType (c )
117110
@@ -124,29 +117,29 @@ func main() {
124117 Name : "csv" ,
125118 Usage : "Import CSV into database" ,
126119 Flags : []cli.Flag {
127- cli.BoolFlag {
120+ & cli.BoolFlag {
128121 Name : "excel" ,
129122 Usage : "support problematic Excel 2008 and Excel 2011 csv line endings" ,
130123 },
131- cli.BoolFlag {
124+ & cli.BoolFlag {
132125 Name : "skip-header" ,
133126 Usage : "skip header row" ,
134127 },
135- cli.StringFlag {
128+ & cli.StringFlag {
136129 Name : "fields" ,
137130 Usage : "comma separated field names if no header row" ,
138131 },
139- cli.StringFlag {
132+ & cli.StringFlag {
140133 Name : "delimiter, d" ,
141134 Value : "," ,
142135 Usage : "field delimiter" ,
143136 },
144- cli.StringFlag {
137+ & cli.StringFlag {
145138 Name : "null-delimiter, nd" ,
146139 Value : "\\ N" ,
147140 Usage : "null delimiter" ,
148141 },
149- cli.BoolFlag {
142+ & cli.BoolFlag {
150143 Name : "skip-parse-delimiter" ,
151144 Usage : "skip parsing escape sequences in the given delimiter" ,
152145 },
@@ -156,8 +149,8 @@ func main() {
156149
157150 filename := c .Args ().First ()
158151
159- ignoreErrors := c .GlobalBool ("ignore-errors" )
160- schema := c .GlobalString ("schema" )
152+ ignoreErrors := c .Bool ("ignore-errors" )
153+ schema := c .String ("schema" )
161154 tableName := parseTableName (c , filename )
162155
163156 skipHeader := c .Bool ("skip-header" )
@@ -173,5 +166,9 @@ func main() {
173166 },
174167 }
175168
176- app .Run (os .Args )
169+ err := app .Run (os .Args )
170+ if err != nil {
171+ log .SetFlags (0 )
172+ log .Fatal (err )
173+ }
177174}
0 commit comments