prefer getEnvMap to multiple calls to getEnvOwned
This commit is contained in:
parent
703e77c19d
commit
3a837e2c1f
1 changed files with 9 additions and 9 deletions
|
|
@ -10,22 +10,22 @@ pub const Config = struct {
|
||||||
airports_dat_path: ?[]const u8,
|
airports_dat_path: ?[]const u8,
|
||||||
|
|
||||||
pub fn load(allocator: std.mem.Allocator) !Config {
|
pub fn load(allocator: std.mem.Allocator) !Config {
|
||||||
|
var env = try std.process.getEnvMap(allocator);
|
||||||
|
defer env.deinit();
|
||||||
return Config{
|
return Config{
|
||||||
.listen_host = std.process.getEnvVarOwned(allocator, "WTTR_LISTEN_HOST") catch try allocator.dupe(u8, "0.0.0.0"),
|
.listen_host = env.get("WTTR_LISTEN_HOST") orelse try allocator.dupe(u8, "0.0.0.0"),
|
||||||
.listen_port = blk: {
|
.listen_port = blk: {
|
||||||
const port_str = std.process.getEnvVarOwned(allocator, "WTTR_LISTEN_PORT") catch break :blk 8002;
|
const port_str = env.get("WTTR_LISTEN_PORT") orelse break :blk 8002;
|
||||||
defer allocator.free(port_str);
|
|
||||||
break :blk std.fmt.parseInt(u16, port_str, 10) catch 8002;
|
break :blk std.fmt.parseInt(u16, port_str, 10) catch 8002;
|
||||||
},
|
},
|
||||||
.cache_size = blk: {
|
.cache_size = blk: {
|
||||||
const size_str = std.process.getEnvVarOwned(allocator, "WTTR_CACHE_SIZE") catch break :blk 10_000;
|
const size_str = env.get("WTTR_CACHE_SIZE") orelse break :blk 10_000;
|
||||||
defer allocator.free(size_str);
|
|
||||||
break :blk std.fmt.parseInt(usize, size_str, 10) catch 10_000;
|
break :blk std.fmt.parseInt(usize, size_str, 10) catch 10_000;
|
||||||
},
|
},
|
||||||
.cache_dir = std.process.getEnvVarOwned(allocator, "WTTR_CACHE_DIR") catch try allocator.dupe(u8, "/tmp/wttr-cache"),
|
.cache_dir = if (env.get("WTTR_CACHE_DIR")) |v| try allocator.dupe(u8, v) else try allocator.dupe(u8, "/tmp/wttr-cache"),
|
||||||
.geolite_path = std.process.getEnvVarOwned(allocator, "WTTR_GEOLITE_PATH") catch try allocator.dupe(u8, "./GeoLite2-City.mmdb"),
|
.geolite_path = if (env.get("WTTR_GEOLITE_PATH")) |v| try allocator.dupe(u8, v) else try allocator.dupe(u8, "./GeoLite2-City.mmdb"),
|
||||||
.geocache_file = std.process.getEnvVarOwned(allocator, "WTTR_GEOCACHE_FILE") catch null,
|
.geocache_file = if (env.get("WTTR_GEOCACHE_FILE")) |v| try allocator.dupe(u8, v) else null,
|
||||||
.airports_dat_path = std.process.getEnvVarOwned(allocator, "WTTR_AIRPORTS_DAT") catch null,
|
.airports_dat_path = if (env.get("WTTR_AIRPORTS_DAT")) |v| try allocator.dupe(u8, v) else null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue