summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-21 01:48:10 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-21 01:48:10 -0400
commitf6596f11c4aacd3c7c30098f7ffe79e936d21583 (patch)
treeaad5d5017b03d530e6c69ea474266fecea86d0e2 /models
parent369ddf76a8ae6916ab72f1fa26c81b44c456c6ea (diff)
downloadgitea-f6596f11c4aacd3c7c30098f7ffe79e936d21583.tar.gz
gitea-f6596f11c4aacd3c7c30098f7ffe79e936d21583.zip
All configuration reload-able
Diffstat (limited to 'models')
-rw-r--r--models/models.go39
-rw-r--r--models/models_test.go3
-rw-r--r--models/repo.go4
3 files changed, 30 insertions, 16 deletions
diff --git a/models/models.go b/models/models.go
index 8df230975f..bb0015d3de 100644
--- a/models/models.go
+++ b/models/models.go
@@ -16,30 +16,39 @@ import (
"github.com/gogits/gogs/modules/base"
)
-var orm *xorm.Engine
+var (
+ orm *xorm.Engine
+
+ dbCfg struct {
+ Type, Host, Name, User, Pwd, Path, SslMode string
+ }
+)
+
+func LoadModelsConfig() {
+ dbCfg.Type = base.Cfg.MustValue("database", "DB_TYPE")
+ dbCfg.Host = base.Cfg.MustValue("database", "HOST")
+ dbCfg.Name = base.Cfg.MustValue("database", "NAME")
+ dbCfg.User = base.Cfg.MustValue("database", "USER")
+ dbCfg.Pwd = base.Cfg.MustValue("database", "PASSWD")
+ dbCfg.Path = base.Cfg.MustValue("database", "PATH", "data/gogs.db")
+ dbCfg.SslMode = base.Cfg.MustValue("database", "SSL_MODE")
+}
func setEngine() {
- dbType := base.Cfg.MustValue("database", "DB_TYPE")
- dbHost := base.Cfg.MustValue("database", "HOST")
- dbName := base.Cfg.MustValue("database", "NAME")
- dbUser := base.Cfg.MustValue("database", "USER")
- dbPwd := base.Cfg.MustValue("database", "PASSWD")
- dbPath := base.Cfg.MustValue("database", "PATH", "data/gogs.db")
- sslMode := base.Cfg.MustValue("database", "SSL_MODE")
var err error
- switch dbType {
+ switch dbCfg.Type {
case "mysql":
orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@%s/%s?charset=utf8",
- dbUser, dbPwd, dbHost, dbName))
+ dbCfg.User, dbCfg.Pwd, dbCfg.Host, dbCfg.Name))
case "postgres":
orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s dbname=%s sslmode=%s",
- dbUser, dbPwd, dbName, sslMode))
+ dbCfg.User, dbCfg.Pwd, dbCfg.Name, dbCfg.SslMode))
case "sqlite3":
- os.MkdirAll(path.Dir(dbPath), os.ModePerm)
- orm, err = xorm.NewEngine("sqlite3", dbPath)
+ os.MkdirAll(path.Dir(dbCfg.Path), os.ModePerm)
+ orm, err = xorm.NewEngine("sqlite3", dbCfg.Path)
default:
- fmt.Printf("Unknown database type: %s\n", dbType)
+ fmt.Printf("Unknown database type: %s\n", dbCfg.Type)
os.Exit(2)
}
if err != nil {
@@ -61,7 +70,7 @@ func setEngine() {
orm.ShowSQL = true
}
-func init() {
+func NewEngine() {
setEngine()
if err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Watch),
new(Action), new(Access)); err != nil {
diff --git a/models/models_test.go b/models/models_test.go
index c44ef476c6..d0f734d678 100644
--- a/models/models_test.go
+++ b/models/models_test.go
@@ -13,6 +13,9 @@ import (
)
func init() {
+ LoadModelsConfig()
+ NewEngine()
+
var err error
orm, err = xorm.NewEngine("sqlite3", "./test.db")
if err != nil {
diff --git a/models/repo.go b/models/repo.go
index 93f68ceddf..f252004785 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -41,10 +41,12 @@ var (
LanguageIgns, Licenses []string
)
-func init() {
+func LoadRepoConfig() {
LanguageIgns = strings.Split(base.Cfg.MustValue("repository", "LANG_IGNS"), "|")
Licenses = strings.Split(base.Cfg.MustValue("repository", "LICENSES"), "|")
+}
+func NewRepoContext() {
zip.Verbose = false
// Check if server has basic git setting.