Jef Roosens 3a4b4b334e | ||
---|---|---|
test | ||
.gitignore | ||
LICENSE | ||
README.md | ||
bool_test.v | ||
conf.v | ||
conf_test.v | ||
int_test.v | ||
string_test.v | ||
v.mod |
README.md
Vconf
Vconf is a small V library for loading in configuration from a TOML config file and/or environment variables.
Usage
Vconf works by reading configuration variables from both a TOML file and/or environment variables.
struct Config {
pub:
port int = 8000
log_level string = 'WARN'
pkg_dir string
data_dir string
api_key string
default_arch string
global_schedule string = '0 3'
base_image string = 'archlinux:base-devel'
max_log_age int = -1
log_removal_schedule string = '0 0'
collect_metrics bool [empty_default]
}
This is an example of a configuration struct. The configuration can then be processed as follows:
conf := vconf.load<Config>(prefix: 'VIETER_', default_path: config_file)!
Configuration is defined completely as a V struct.
Progress
My goal is to eventually support most types that the TOML library supports. Currently supported:
Date
DateTime
Time
bool
f32
f64
i64
int
- string
u64
[]Any
map[string]Any
With the last one, my plan is to have this be another struct inside the top-level one. Configuration could then be defined recursively.