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' } }