aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorMartin Wickham <spexguy070@gmail.com>2021-06-21 13:47:38 -0500
committerAndrew Kelley <andrew@ziglang.org>2021-07-08 14:30:45 -0400
commite2b954c2738c683a85b864eb33530f0e3dbbc480 (patch)
tree47d90ba0a28ee7ce3e4e2f12b325567c31f307e2 /src/main.zig
parent7bdeda82aea82b9a71378462f51a708b8ad88161 (diff)
downloadzig-e2b954c2738c683a85b864eb33530f0e3dbbc480.tar.gz
zig-e2b954c2738c683a85b864eb33530f0e3dbbc480.zip
Add support for NO_COLOR
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/main.zig b/src/main.zig
index 37044d0b99..2b961bb64c 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -503,15 +503,6 @@ const Emit = union(enum) {
}
};
-fn optionalBoolEnvVar(arena: *Allocator, name: []const u8) !bool {
- if (std.process.getEnvVarOwned(arena, name)) |_| {
- return true;
- } else |err| switch (err) {
- error.EnvironmentVariableNotFound => return false,
- else => |e| return e,
- }
-}
-
fn optionalStringEnvVar(arena: *Allocator, name: []const u8) !?[]const u8 {
if (std.process.getEnvVarOwned(arena, name)) |value| {
return value;
@@ -548,8 +539,8 @@ fn buildOutputType(
var single_threaded = false;
var function_sections = false;
var watch = false;
- var verbose_link = try optionalBoolEnvVar(arena, "ZIG_VERBOSE_LINK");
- var verbose_cc = try optionalBoolEnvVar(arena, "ZIG_VERBOSE_CC");
+ var verbose_link = std.process.hasEnvVarConstant("ZIG_VERBOSE_LINK");
+ var verbose_cc = std.process.hasEnvVarConstant("ZIG_VERBOSE_CC");
var verbose_air = false;
var verbose_llvm_ir = false;
var verbose_cimport = false;
@@ -670,6 +661,11 @@ fn buildOutputType(
defer freePkgTree(gpa, &pkg_tree_root, false);
var cur_pkg: *Package = &pkg_tree_root;
+ // before arg parsing, check for the NO_COLOR environment variable
+ // if it exists, default the color setting to .off
+ // explicit --color arguments will still override this setting.
+ color = if (std.process.hasEnvVarConstant("NO_COLOR")) .off else .auto;
+
switch (arg_mode) {
.build, .translate_c, .zig_test, .run => {
var optimize_mode_string: ?[]const u8 = null;