authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-18 15:50:00-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-18 15:50:00-07:00
log63f9af87d3b5931fc0769cb504404d66a17565d5
tree50cd0832f3ff512d6629da3a4ce3fd94b793a74c
parentec21da0d51afa9b688ed99425b307e23a9c57a07

zig env: back to json output

changed my mind I liked it better before. this reverts 053119083c2c93cb1fc4129bc647c03301f4010d.

1 files changed, 29 insertions(+), 21 deletions(-)

src/print_env.zig+29-21
......@@ -23,30 +23,38 @@ pub fn cmdEnv(arena: Allocator, args: []const []const u8, stdout: std.fs.File.Wr
2323 var bw = std.io.bufferedWriter(stdout);
2424 const w = bw.writer();
2525
26 try w.print(
27 \\zig_exe={s}
28 \\lib_dir={s}
29 \\std_dir={s}
30 \\global_cache_dir={s}
31 \\version={s}
32 \\target={s}
33 \\
34 , .{
35 self_exe_path,
36 zig_lib_directory.path.?,
37 zig_std_dir,
38 global_cache_dir,
39 build_options.version,
40 triple,
41 });
26 var jws = std.json.writeStream(w, .{ .whitespace = .indent_1 });
4227
28 try jws.beginObject();
29
30 try jws.objectField("zig_exe");
31 try jws.write(self_exe_path);
32
33 try jws.objectField("lib_dir");
34 try jws.write(zig_lib_directory.path.?);
35
36 try jws.objectField("std_dir");
37 try jws.write(zig_std_dir);
38
39 try jws.objectField("global_cache_dir");
40 try jws.write(global_cache_dir);
41
42 try jws.objectField("version");
43 try jws.write(build_options.version);
44
45 try jws.objectField("target");
46 try jws.write(triple);
47
48 try jws.objectField("env");
49 try jws.beginObject();
4350 inline for (@typeInfo(introspect.EnvVar).Enum.fields) |field| {
44 if (try @field(introspect.EnvVar, field.name).get(arena)) |value| {
45 try w.print("{s}={s}\n", .{ field.name, value });
46 } else {
47 try w.print("{s}\n", .{field.name});
48 }
51 try jws.objectField(field.name);
52 try jws.write(try @field(introspect.EnvVar, field.name).get(arena));
4953 }
54 try jws.endObject();
55
56 try jws.endObject();
57 try w.writeByte('\n');
5058
5159 try bw.flush();
5260}