Merge pull request #44 from ZhengYang/master

Loading JSON config and default value changes for generate appcode
This commit is contained in:
astaxie 2014-08-13 14:53:16 +08:00
commit 9f80acc0ff
4 changed files with 44 additions and 10 deletions

View File

@ -13,5 +13,9 @@
"others": [] "others": []
}, },
"cmd_args": [], "cmd_args": [],
"envs": [] "envs": [],
"database": {
"driver": "mysql",
"conn": "root:@tcp(127.0.0.1:3306)/test"
}
} }

10
conf.go
View File

@ -36,7 +36,11 @@ var defaultConf = `{
"others": [] "others": []
}, },
"cmd_args": [], "cmd_args": [],
"envs": [] "envs": [],
"database": {
"driver": "mysql",
"conn": "root:@tcp(127.0.0.1:3306)/test"
}
} }
` `
var conf struct { var conf struct {
@ -62,6 +66,10 @@ var conf struct {
Dirs []string Dirs []string
IngExt []string `json:"ignore_ext"` IngExt []string `json:"ignore_ext"`
} }
Database struct {
Driver string
Conn string
}
} }
// loadConfig loads customized configuration. // loadConfig loads customized configuration.

23
g.go
View File

@ -43,12 +43,12 @@ bee generate docs
bee generate test [routerfile] bee generate test [routerfile]
generate testcase generate testcase
bee generate appcode [-tables=""] [-driver=mysql] [-conn=root:@tcp(127.0.0.1:3306)/test] [-level=1] bee generate appcode [-tables=""] [-driver=mysql] [-conn=root:@tcp(127.0.0.1:3306)/test] [-level=3]
generate appcode based on an existing database generate appcode based on an existing database
-tables: a list of table names separated by ',', default is empty, indicating all tables -tables: a list of table names separated by ',', default is empty, indicating all tables
-driver: [mysql | postgresql | sqlite], the default is mysql -driver: [mysql | postgresql | sqlite], the default is mysql
-conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
-level: [1 | 2 | 3], 1 = model; 2 = models,controller; 3 = models,controllers,router -level: [1 | 2 | 3], 1 = models; 2 = models,controllers; 3 = models,controllers,router
`, `,
} }
@ -102,19 +102,30 @@ func generateCode(cmd *Command, args []string) {
case "docs": case "docs":
generateDocs(curpath) generateDocs(curpath)
case "appcode": case "appcode":
// load config
err := loadConfig()
if err != nil {
ColorLog("[ERRO] Fail to parse bee.json[ %s ]\n", err)
}
cmd.Flag.Parse(args[1:]) cmd.Flag.Parse(args[1:])
if driver == "" { if driver == "" {
driver = "mysql" driver = docValue(conf.Database.Driver)
if driver == "" {
driver = "mysql"
}
} }
if conn == "" { if conn == "" {
conn = "root:@tcp(127.0.0.1:3306)/test" conn = docValue(conf.Database.Conn)
if conn == "" {
conn = "root:@tcp(127.0.0.1:3306)/test"
}
} }
if level == "" { if level == "" {
level = "1" level = "3"
} }
ColorLog("[INFO] Using '%s' as 'driver'\n", driver) ColorLog("[INFO] Using '%s' as 'driver'\n", driver)
ColorLog("[INFO] Using '%s' as 'conn'\n", conn) ColorLog("[INFO] Using '%s' as 'conn'\n", conn)
ColorLog("[INFO] Using '%s' as 'tables'", tables) ColorLog("[INFO] Using '%s' as 'tables'\n", tables)
ColorLog("[INFO] Using '%s' as 'level'\n", level) ColorLog("[INFO] Using '%s' as 'level'\n", level)
generateAppcode(string(driver), string(conn), string(level), string(tables), curpath) generateAppcode(string(driver), string(conn), string(level), string(tables), curpath)
case "migration": case "migration":

View File

@ -70,15 +70,26 @@ func runMigration(cmd *Command, args []string) {
ColorLog("[HINT] Set $GOPATH in your environment vairables\n") ColorLog("[HINT] Set $GOPATH in your environment vairables\n")
os.Exit(2) os.Exit(2)
} }
// load config
err := loadConfig()
if err != nil {
ColorLog("[ERRO] Fail to parse bee.json[ %s ]\n", err)
}
// getting command line arguments // getting command line arguments
if len(args) != 0 { if len(args) != 0 {
cmd.Flag.Parse(args[1:]) cmd.Flag.Parse(args[1:])
} }
if mDriver == "" { if mDriver == "" {
mDriver = "mysql" mDriver = docValue(conf.Database.Driver)
if mDriver == "" {
mDriver = "mysql"
}
} }
if mConn == "" { if mConn == "" {
mConn = "root:@tcp(127.0.0.1:3306)/test" mConn = docValue(conf.Database.Conn)
if mConn == "" {
mConn = "root:@tcp(127.0.0.1:3306)/test"
}
} }
ColorLog("[INFO] Using '%s' as 'driver'\n", mDriver) ColorLog("[INFO] Using '%s' as 'driver'\n", mDriver)
ColorLog("[INFO] Using '%s' as 'conn'\n", mConn) ColorLog("[INFO] Using '%s' as 'conn'\n", mConn)