diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-10-18 15:50:00 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-10-18 15:50:00 -0700 |
| commit | 63f9af87d3b5931fc0769cb504404d66a17565d5 (patch) | |
| tree | 50cd0832f3ff512d6629da3a4ce3fd94b793a74c /src/print_env.zig | |
| parent | ec21da0d51afa9b688ed99425b307e23a9c57a07 (diff) | |
| download | zig-63f9af87d3b5931fc0769cb504404d66a17565d5.tar.gz zig-63f9af87d3b5931fc0769cb504404d66a17565d5.zip | |
zig env: back to json output
changed my mind I liked it better before. this reverts
053119083c2c93cb1fc4129bc647c03301f4010d.
Diffstat (limited to 'src/print_env.zig')
| -rw-r--r-- | src/print_env.zig | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/src/print_env.zig b/src/print_env.zig index ca64889848..89c6ffe754 100644 --- a/src/print_env.zig +++ b/src/print_env.zig @@ -23,30 +23,38 @@ pub fn cmdEnv(arena: Allocator, args: []const []const u8, stdout: std.fs.File.Wr var bw = std.io.bufferedWriter(stdout); const w = bw.writer(); - try w.print( - \\zig_exe={s} - \\lib_dir={s} - \\std_dir={s} - \\global_cache_dir={s} - \\version={s} - \\target={s} - \\ - , .{ - self_exe_path, - zig_lib_directory.path.?, - zig_std_dir, - global_cache_dir, - build_options.version, - triple, - }); + var jws = std.json.writeStream(w, .{ .whitespace = .indent_1 }); + try jws.beginObject(); + + try jws.objectField("zig_exe"); + try jws.write(self_exe_path); + + try jws.objectField("lib_dir"); + try jws.write(zig_lib_directory.path.?); + + try jws.objectField("std_dir"); + try jws.write(zig_std_dir); + + try jws.objectField("global_cache_dir"); + try jws.write(global_cache_dir); + + try jws.objectField("version"); + try jws.write(build_options.version); + + try jws.objectField("target"); + try jws.write(triple); + + try jws.objectField("env"); + try jws.beginObject(); inline for (@typeInfo(introspect.EnvVar).Enum.fields) |field| { - if (try @field(introspect.EnvVar, field.name).get(arena)) |value| { - try w.print("{s}={s}\n", .{ field.name, value }); - } else { - try w.print("{s}\n", .{field.name}); - } + try jws.objectField(field.name); + try jws.write(try @field(introspect.EnvVar, field.name).get(arena)); } + try jws.endObject(); + + try jws.endObject(); + try w.writeByte('\n'); try bw.flush(); } |
