// Load Users configuraiton func setUsersConfig(userSection *configparser.Section) { for key, value := range userSection.Options() { switch key { case "avatarDB": Users.AvatarDb = value } } }
// Load Search configuration options func SetSearchConfig(searchSection *configparser.Section) { for key, value := range searchSection.Options() { switch key { case "searchServerLocation": Search.SearchServerLocation = value } } }
// Load Registry configuration func setRegistryConfig(registrySection *configparser.Section) { for key, value := range registrySection.Options() { switch key { case "entryTTL": setUint64Val(value, &ServiceRegistry.EntryTTL) case "cacheRefreshInterval": setUint64Val(value, &ServiceRegistry.CacheRefreshInterval) } } }
// Load Logging configuration func setLogConfig(logSection *configparser.Section) { for key, value := range logSection.Options() { switch key { case "logFile": Logger.LogFile = value case "maxSize": setIntVal(value, &Logger.MaxSize) case "maxBackups": setIntVal(value, &Logger.MaxBackups) case "maxAge": setIntVal(value, &Logger.MaxAge) } } }
// Load Auth configuration func setAuthConfig(authSection *configparser.Section) { for key, value := range authSection.Options() { switch key { case "authenticator": Auth.Authenticator = strings.ToLower(value) case "sessionTimeout": setUint64Val(value, &Auth.SessionTimeout) case "persistentSessions": Auth.PersistentSessions = stringToBool(value) case "allowGuestAccess": Auth.AllowGuest = stringToBool(value) case "allowNewUserRegistration": Auth.AllowNewUserRegistration = stringToBool(value) case "minPasswordLength": setIntVal(value, &Auth.MinPasswordLength) } } }
// Load Database configuration options func setDbConfig(dbSection *configparser.Section) { for key, value := range dbSection.Options() { switch key { case "dbAddr": Database.DbAddr = value case "dbPort": Database.DbPort = value case "useSSL": Database.UseSSL = stringToBool(value) case "dbAdminUser": Database.DbAdminUser = value case "dbAdminPassword": Database.DbAdminPassword = value case "dbTimeout": Database.DbTimeout = value case "mainDb": Database.MainDb = value } } }
// Load Frontend configuration options func SetFrontendConfig(frontendSection *configparser.Section) { execDir, _ := util.GetExecDirectory() for key, value := range frontendSection.Options() { switch key { case "webAppDir": if value[0] != '/' { Frontend.WebAppDir = path.Join(execDir, value) } else { Frontend.WebAppDir = value } case "pluginDir": if value[0] != '/' { Frontend.PluginDir = path.Join(execDir, value) } else { Frontend.PluginDir = value } case "homepage": Frontend.Homepage = value } } }
//Load Notification configuration options func setNotificationConfig(notifSection *configparser.Section) { for key, value := range notifSection.Options() { switch key { case "templateDirectory": Notifications.TemplateDir = value case "useHtmlTemplates": Notifications.UseHtmlTemplates = stringToBool(value) case "mainSiteUrl": Notifications.MainSiteUrl = value case "smtpServer": Notifications.SmtpServer = value case "useSSL": Notifications.UseSSL = stringToBool(value) case "smtpPort": setIntVal(value, &Notifications.SmtpPort) case "smtpUser": Notifications.SmtpUser = value case "smtpPassword": Notifications.SmtpPassword = value case "fromEmail": Notifications.FromEmail = value } } }
// GetConnection - Return DB connection object based on config file. func GetConnection(path string) abstract.Database { var collection *mgo.Collection conf, _ := configparser.Read(path) checkError(conf, "Invalid configuration file") driver_config, _ := conf.Section("nosql.db") var db_config *configparser.Section if strings.Contains(strings.ToLower(driver_config.ValueOf("name")), "mongo") { db_config, _ = conf.Section("mongo") driver_config.SetValueFor("name", "mongo") } else if strings.Contains(strings.ToLower(driver_config.ValueOf("name")), "couch") { db_config, _ = conf.Section("couch") driver_config.SetValueFor("name", "couch") } switch strings.ToUpper(driver_config.ValueOf("name")) { case "COUCH": var db couch.Database if db_config.ValueOf("user") == "" { db, _ = couch.NewDatabase(db_config.ValueOf("ipaddress"), db_config.ValueOf("port"), db_config.ValueOf("dbname")) } else { db, _ = couch.NewDatabaseByURL("http://" + db_config.ValueOf("user") + ":" + db_config.ValueOf("password") + "@" + db_config.ValueOf("ipaddress") + ":" + db_config.ValueOf("port") + "/" + db_config.ValueOf("dbname")) } return abstract.Database(supported_db.CouchDb{db}) case "MONGO": var mongoSession *mgo.Session var err error if db_config.ValueOf("user") == "" { mongoSession, err = mgo.Dial(db_config.ValueOf("ipaddress") + ":" + db_config.ValueOf("port")) } else { mongoSession, err = mgo.Dial(db_config.ValueOf("user") + ":" + db_config.ValueOf("password") + "@" + db_config.ValueOf("ipaddress") + ":" + db_config.ValueOf("port") + "/" + db_config.ValueOf("dbname")) } checkError(mongoSession, err) db := mongoSession.DB(db_config.ValueOf("dbname")) collection = db.C(db_config.ValueOf("collectionname")) return abstract.Database(supported_db.MongoDb{collection}) default: panic("Supports only Couch or MongoDb") } return nil }