-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgogccintro.go
88 lines (71 loc) · 1.93 KB
/
gogccintro.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// Copyright 2017, James Michael Du Pont. All rights reserved.
// Use of this source code is governed by a AGPL-style
// license that can be found in the LICENSE file.
// gogccintro.go [created: Wed, 1 Mar 2017]
package main
import (
"fmt"
"log"
"os"
// "io/ioutil"
_ "database/sql"
"flag"
"github.com/knq/dburl"
_ "github.com/mattes/migrate/driver/sqlite3"
_ "github.com/mattes/migrate/migrate"
_ "github.com/mattn/go-sqlite3"
//"github.com/BurntSushi/toml"
// "gopkg.in/yaml.v2"
///"github.com/h4ck3rm1k3/gogccintro/filters"
"github.com/jinzhu/configor"
//"filter/load_recurse"
)
//filters := map[string]int{
// "load_recurse": filter.load_recurse,
//}
var Config = struct {
APPName string `default:"go gcc introspector"`
InputDB struct {
Path string
}
Transform filter.Transform
OutputDB struct {
Path string
}
// where to write the test file
OutputTest struct {
Path string
}
}{}
func main() {
config := flag.String("file", "config.yaml", "configuration file")
flag.StringVar(&Config.InputDB.Path, "inputdb", "", "input db name")
flag.StringVar(&Config.OutputDB.Path, "outputdb", "", "output db name")
flag.Parse()
os.Setenv("CONFIGOR_ENV_PREFIX", "-")
err := configor.Load(&Config, *config)
if err != nil {
fmt.Printf("err loading %s\n", err)
}
fmt.Println("Hello, GCC!")
fmt.Printf("input db %s\n", Config.InputDB.Path)
fmt.Printf("output db %s\n", Config.OutputDB.Path)
fmt.Printf("filter %s\n", Config.Transform.Filter)
indb, err := dburl.Open(Config.InputDB.Path)
if err != nil {
log.Fatal(err)
}
outdb, err := dburl.Open(Config.OutputDB.Path)
if err != nil {
log.Fatal(err)
}
outf, err := os.Create(Config.OutputTest.Path)
defer outf.Close()
if err != nil {
log.Fatal(err)
}
filter.DoTransform(indb, outdb, outf, &Config.Transform)
//configBytes, err := yaml.Marshal(&Config)
//fmt.Printf("output %#v\nerr:%#v\n", configBytes, err)
//ioutil.WriteFile("test.yaml", configBytes, 0644)
}