authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-09-12 17:16:41 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-09-12 17:16:41 -07:00
loged7f7186cdafaeb3c257c5de14a8d7662c8a8237
treec1ad76808d244127e09fe178f605c69ca78c4c07
parent1948b07892e0dcc4bf5351dbfe712004285ea623

forgot to replace `-` with `_` in env var search


2 files changed, 14 insertions(+), 2 deletions(-)

src/lib.zig+13-2
......@@ -2,6 +2,7 @@ const std = @import("std");
22const string = []const u8;
33const List = std.ArrayList(string);
44const extras = @import("extras");
5const range = @import("range").range;
56
67var singles: std.StringArrayHashMap(string) = undefined;
78var multis: std.StringArrayHashMap(List) = undefined;
......@@ -66,7 +67,7 @@ pub fn parseEnv() !void {
6667 const alloc = singles.allocator;
6768
6869 for (singles.keys()) |jtem| {
69 const u = try extras.asciiUpper(alloc, jtem);
70 const u = try fixNameForEnv(alloc, jtem);
7071 defer alloc.free(u);
7172 if (std.os.getenv(u)) |value| {
7273 try singles.put(jtem, value);
......@@ -76,7 +77,7 @@ pub fn parseEnv() !void {
7677 const e = multis.getEntry(jtem).?;
7778 var n: usize = 1;
7879 while (true) : (n += 1) {
79 const u = try extras.asciiUpper(alloc, e.key_ptr.*);
80 const u = try fixNameForEnv(alloc, e.key_ptr.*);
8081 defer alloc.free(u);
8182 const k = try std.fmt.allocPrint(alloc, "{s}_{d}", .{ u, n });
8283 defer alloc.free(k);
......@@ -89,6 +90,16 @@ pub fn parseEnv() !void {
8990 }
9091}
9192
93fn fixNameForEnv(alloc: *std.mem.Allocator, input: string) !string {
94 var ret = try extras.asciiUpper(alloc, input);
95 for (range(ret.len)) |_, i| {
96 if (ret[i] == '-') {
97 ret[i] = '_';
98 }
99 }
100 return ret;
101}
102
92103pub fn getSingle(name: string) ?string {
93104 const x = singles.get(name).?;
94105 return if (x.len > 0) x else null;
zig.mod+1
......@@ -5,3 +5,4 @@ license: MIT
55description: Config management for Zig.
66dependencies:
77 - src: git https://github.com/nektro/zig-extras
8 - src: git https://github.com/nektro/zig-range