From ed7f7186cdafaeb3c257c5de14a8d7662c8a8237 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 12 Sep 2021 17:16:41 -0700 Subject: [PATCH] forgot to replace `-` with `_` in env var search --- src/lib.zig | 15 +++++++++++++-- zig.mod | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lib.zig b/src/lib.zig index a3e04c05c0d2b041ebbad5fd39c3747488c36ac5..5ddcf9e222f84a311b03a4ec27540f4dd5c857a8 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -2,6 +2,7 @@ const std = @import("std"); const string = []const u8; const List = std.ArrayList(string); const extras = @import("extras"); +const range = @import("range").range; var singles: std.StringArrayHashMap(string) = undefined; var multis: std.StringArrayHashMap(List) = undefined; @@ -66,7 +67,7 @@ pub fn parseEnv() !void { const alloc = singles.allocator; for (singles.keys()) |jtem| { - const u = try extras.asciiUpper(alloc, jtem); + const u = try fixNameForEnv(alloc, jtem); defer alloc.free(u); if (std.os.getenv(u)) |value| { try singles.put(jtem, value); @@ -76,7 +77,7 @@ pub fn parseEnv() !void { const e = multis.getEntry(jtem).?; var n: usize = 1; while (true) : (n += 1) { - const u = try extras.asciiUpper(alloc, e.key_ptr.*); + const u = try fixNameForEnv(alloc, e.key_ptr.*); defer alloc.free(u); const k = try std.fmt.allocPrint(alloc, "{s}_{d}", .{ u, n }); defer alloc.free(k); @@ -89,6 +90,16 @@ pub fn parseEnv() !void { } } +fn fixNameForEnv(alloc: *std.mem.Allocator, input: string) !string { + var ret = try extras.asciiUpper(alloc, input); + for (range(ret.len)) |_, i| { + if (ret[i] == '-') { + ret[i] = '_'; + } + } + return ret; +} + pub fn getSingle(name: string) ?string { const x = singles.get(name).?; return if (x.len > 0) x else null; diff --git a/zig.mod b/zig.mod index 4f6013c15483e8dabf3b309637cc83122bfa7501..31a8d14a2ca532a988917ea6fa3181a4dc64b64c 100644 --- a/zig.mod +++ b/zig.mod @@ -5,3 +5,4 @@ license: MIT description: Config management for Zig. dependencies: - src: git https://github.com/nektro/zig-extras + - src: git https://github.com/nektro/zig-range -- 2.54.0