highscore-server/src/config.v

47 lines
982 B
V

module main
import toml
import os
const (
path = config_path()
)
struct Config {
host string
port int
token string
redirect bool
redirect_url string
db_path string
origins []string
}
fn (config Config) copy() Config {
return config
}
fn load_config() !Config {
if !os.is_file(path) {
return error('Config file does not exist or is not a file')
}
config := toml.parse_file(path) or {
return error('Error while parsing config file:\n' + err.msg())
}
return Config{
host: config.value('host').string()
port: config.value('port').int()
token: config.value('token').string()
redirect: config.value('redirect').bool()
redirect_url: config.value('redirect_url').string()
db_path: config.value('db_path').string()
origins: config.value('origins').array().as_strings()
}
}
fn config_path() string {
path_env := $env('CONFIG_PATH').trim_space()
return if path_env.len != 0 { path_env } else { './config.toml' }
}