Skip to content

Commit 37d2dd8

Browse files
author
Mariano Gappa
committed
Adds usage function.
1 parent 8926c0d commit 37d2dd8

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

main.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -25,39 +25,39 @@ type database struct {
2525
func main() {
2626
usr, err := user.Current()
2727
if err != nil {
28-
log.Fatalf("Couldn't obtain the current user err=%v", err)
28+
usage("Couldn't obtain the current user err=%v", err)
2929
}
3030

3131
databasesFile := usr.HomeDir + "/.databases.json"
3232
databases := map[string]database{}
3333

3434
byts, err := ioutil.ReadFile(databasesFile)
3535
if err != nil {
36-
log.Fatalf("Couldn't read [%v] file. err=%v", databasesFile, err)
36+
usage("Couldn't read [%v] file. err=%v", databasesFile, err)
3737
}
3838

3939
err = json.Unmarshal(byts, &databases)
4040
if err != nil {
41-
log.Fatalf("Couldn't unmarshal [%v] file. err=%v", databasesFile, err)
41+
usage("Couldn't unmarshal [%v] file. err=%v", databasesFile, err)
4242
}
4343

4444
if len(databases) == 0 {
45-
log.Fatalf("Couldn't find any database configurations in [%v] file.", databasesFile)
45+
usage("Couldn't find any database configurations in [%v] file.", databasesFile)
4646
}
4747

4848
sql := readInput(os.Stdin)
4949
if len(sql) <= 3 {
50-
log.Fatal("No SQL to run. Exiting.")
50+
usage("No SQL to run. Exiting.")
5151
}
5252

5353
if len(os.Args[1:]) == 0 {
54-
log.Fatal("Target database unspecified; where should I run the query?")
54+
usage("Target database unspecified; where should I run the query?")
5555
}
5656

5757
targetDatabases := []string{}
5858
for _, k := range os.Args[1:] {
5959
if _, ok := databases[k]; k != "all" && !ok {
60-
log.Fatalf("Target database unknown: [%v]", k)
60+
usage("Target database unknown: [%v]", k)
6161
}
6262
if k == "all" {
6363
targetDatabases = nil

usage.go

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
)
7+
8+
func usage(error string, args ...interface{}) {
9+
if len(error) > 0 {
10+
if len(args) > 0 {
11+
fmt.Println(fmt.Sprintf(error, args))
12+
} else {
13+
fmt.Println(error)
14+
}
15+
fmt.Println()
16+
}
17+
18+
fmt.Println(`usage: ... | sql target_1 [target_2 ...]
19+
20+
e.g.
21+
22+
cat query.sql | sql test_db
23+
24+
sed 's/2015/2016/g' query_for_2015.sql | sql db1 db2 db3
25+
26+
echo "SELECT * FROM users WHERE name = 'John'" | sql all
27+
28+
For more detailed help, please go to: https://github.com/MarianoGappa/sql
29+
`)
30+
os.Exit(1)
31+
}

0 commit comments

Comments
 (0)