61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"encoding/hex"
|
||
|
"path/filepath"
|
||
|
|
||
|
"git.1248.nz/1248/Otfe/misc/helpers"
|
||
|
|
||
|
"github.com/BurntSushi/toml"
|
||
|
)
|
||
|
|
||
|
//Configuration struct
|
||
|
type Configuration struct {
|
||
|
DB database `toml:"database"`
|
||
|
Session session
|
||
|
}
|
||
|
|
||
|
// Database stuct
|
||
|
type database struct {
|
||
|
Host string
|
||
|
Name string
|
||
|
User string
|
||
|
Password string
|
||
|
}
|
||
|
|
||
|
type session struct {
|
||
|
SecretKey string
|
||
|
Sessionkey string
|
||
|
Timeout int
|
||
|
}
|
||
|
|
||
|
var config *Configuration
|
||
|
|
||
|
func init() {
|
||
|
Get()
|
||
|
}
|
||
|
|
||
|
// Get config info from toml config file
|
||
|
func Get() *Configuration {
|
||
|
if config == nil {
|
||
|
_, err := toml.DecodeFile(getConfigFile(), &config)
|
||
|
helpers.CheckError(err)
|
||
|
}
|
||
|
return config
|
||
|
}
|
||
|
|
||
|
func getConfigFile() string {
|
||
|
return filepath.Join(helpers.GetRootDir(), "config.toml")
|
||
|
}
|
||
|
|
||
|
func GetSecretKey() []byte {
|
||
|
config := Get()
|
||
|
key, err := hex.DecodeString(config.Session.SecretKey)
|
||
|
helpers.CheckError(err)
|
||
|
return key
|
||
|
}
|
||
|
|
||
|
func GetSessionKey() string {
|
||
|
return Get().Session.Sessionkey
|
||
|
}
|