focalboard/server/main/config.go

44 lines
1.3 KiB
Go
Raw Normal View History

2020-10-08 18:21:27 +02:00
package main
import (
"log"
2020-10-09 10:27:20 +02:00
"github.com/spf13/viper"
2020-10-08 18:21:27 +02:00
)
// Configuration is the app configuration stored in a json file
type Configuration struct {
ServerRoot string `json:"serverRoot"`
Port int `json:"port"`
DBType string `json:"dbtype"`
DBConfigString string `json:"dbconfig"`
UseSSL bool `json:"useSSL"`
WebPath string `json:"webpath"`
FilesPath string `json:"filespath"`
}
2020-10-09 10:27:20 +02:00
func readConfigFile() (*Configuration, error) {
viper.SetConfigName("config") // name of config file (without extension)
viper.SetConfigType("json") // REQUIRED if the config file does not have the extension in the name
viper.AddConfigPath(".") // optionally look for config in the working directory
viper.SetDefault("ServerRoot", "http://localhost")
viper.SetDefault("Port", 8000)
viper.SetDefault("DBType", "sqlite3")
viper.SetDefault("DBConfigString", "./octo.db")
viper.SetDefault("WebPath", "./pack")
viper.SetDefault("FilesPath", "./files")
2020-10-08 18:21:27 +02:00
2020-10-09 10:27:20 +02:00
err := viper.ReadInConfig() // Find and read the config file
if err != nil { // Handle errors reading the config file
return nil, err
2020-10-08 18:21:27 +02:00
}
2020-10-09 10:27:20 +02:00
configuration := Configuration{}
viper.Unmarshal(&configuration)
2020-10-08 18:21:27 +02:00
log.Println("readConfigFile")
log.Printf("%+v", configuration)
2020-10-09 10:27:20 +02:00
return &configuration, nil
2020-10-08 18:21:27 +02:00
}