56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
package config
|
|
|
|
import (
|
|
"runtime"
|
|
|
|
fin "git.sharkk.net/Sharkk/Fin"
|
|
)
|
|
|
|
// Config represents the current loaded configuration for the server
|
|
type Config struct {
|
|
Server struct {
|
|
Port int
|
|
Debug bool
|
|
HTTPLogging bool
|
|
PublicPrefix string
|
|
}
|
|
|
|
Runner struct {
|
|
PoolSize int
|
|
}
|
|
|
|
Dirs struct {
|
|
Routes string
|
|
Public string
|
|
FS string
|
|
Data string
|
|
Override string
|
|
Libs []string
|
|
}
|
|
|
|
data *fin.Data
|
|
}
|
|
|
|
// NewConfig creates a new configuration with default values
|
|
func New(data *fin.Data) *Config {
|
|
config := &Config{
|
|
data: data,
|
|
}
|
|
|
|
config.Server.Port = data.GetOr("server.port", 3117).(int)
|
|
config.Server.Debug = data.GetOr("server.debug", false).(bool)
|
|
config.Server.HTTPLogging = data.GetOr("server.http_logging", true).(bool)
|
|
config.Server.PublicPrefix = data.GetOr("server.public_prefix", "public").(string)
|
|
|
|
config.Runner.PoolSize = data.GetOr("runner.pool_size", runtime.GOMAXPROCS(0)).(int)
|
|
|
|
config.Dirs.Routes = data.GetOr("dirs.routes", "routes").(string)
|
|
config.Dirs.Public = data.GetOr("dirs.public", "public").(string)
|
|
config.Dirs.FS = data.GetOr("dirs.fs", "fs").(string)
|
|
config.Dirs.Data = data.GetOr("dirs.data", "data").(string)
|
|
config.Dirs.Override = data.GetOr("dirs.override", "override").(string)
|
|
config.Dirs.Libs = data.GetOr("dirs.libs", []string{"libs"}).([]string)
|
|
|
|
return config
|
|
}
|