aboutsummaryrefslogtreecommitdiff
path: root/src/cli
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-11 14:56:28 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-11 14:56:28 -0800
commit3d057950b9249bed3c5b0034ef7424ac84adf2e5 (patch)
treed2f64bbf42890191711571708f110e79990880b2 /src/cli
parent29f0159eae198aebf5ff9d2b6f76ddbdb2f8f63c (diff)
downloadbun-3d057950b9249bed3c5b0034ef7424ac84adf2e5.tar.gz
bun-3d057950b9249bed3c5b0034ef7424ac84adf2e5.tar.zst
bun-3d057950b9249bed3c5b0034ef7424ac84adf2e5.zip
`std.os.`exit -> `Global.exit` so stderr is always flushed
Diffstat (limited to 'src/cli')
-rw-r--r--src/cli/bun_command.zig2
-rw-r--r--src/cli/create_command.zig40
-rw-r--r--src/cli/install_completions_command.zig18
-rw-r--r--src/cli/package_manager_command.zig4
-rw-r--r--src/cli/run_command.zig12
-rw-r--r--src/cli/test_command.zig2
-rw-r--r--src/cli/upgrade_command.zig44
7 files changed, 61 insertions, 61 deletions
diff --git a/src/cli/bun_command.zig b/src/cli/bun_command.zig
index 5807a5858..225940d13 100644
--- a/src/cli/bun_command.zig
+++ b/src/cli/bun_command.zig
@@ -147,7 +147,7 @@ pub const BunCommand = struct {
if (ctx.debug.dump_limits) {
fs.FileSystem.printLimits();
- std.os.exit(0);
+ Global.exit(0);
return;
}
diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig
index 7abea971b..b82370a5f 100644
--- a/src/cli/create_command.zig
+++ b/src/cli/create_command.zig
@@ -222,7 +222,7 @@ const CreateOptions = struct {
Output.prettyln(" NPM_CLIENT<r> Absolute path to the npm client executable", .{});
Output.flush();
- std.os.exit(0);
+ Global.exit(0);
}
var opts = CreateOptions{ .positionals = args.positionals() };
@@ -416,7 +416,7 @@ pub const CreateCommand = struct {
const examples = try Example.fetchAllLocalAndRemote(ctx, null, &env_loader, filesystem);
Example.print(examples.items, dirname);
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
},
else => {
node.end();
@@ -530,7 +530,7 @@ pub const CreateCommand = struct {
Output.prettyErrorln("<r>\n<d>To download {s} anyway, use --force<r>", .{template});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
}
@@ -569,7 +569,7 @@ pub const CreateCommand = struct {
Output.prettyErrorln("<r><red>{s}<r>: opening dir {s}", .{ @errorName(err), template });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
std.fs.deleteTreeAbsolute(destination) catch {};
@@ -580,7 +580,7 @@ pub const CreateCommand = struct {
Output.prettyErrorln("<r><red>{s}<r>: creating dir {s}", .{ @errorName(err), destination });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
const Walker = @import("../walker_skippable.zig");
@@ -608,7 +608,7 @@ pub const CreateCommand = struct {
Output.prettyErrorln("<r><red>{s}<r>: copying file {s}", .{ @errorName(err), entry.path });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
};
defer outfile.close();
@@ -629,7 +629,7 @@ pub const CreateCommand = struct {
Output.prettyErrorln("<r><red>{s}<r>: copying file {s}", .{ @errorName(err), entry.path });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
};
}
@@ -1938,11 +1938,11 @@ pub const Example = struct {
try ctx.log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
} else {
Output.prettyErrorln("Error parsing package: <r><red>{s}<r>", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
};
@@ -1956,7 +1956,7 @@ pub const Example = struct {
try ctx.log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
const tarball_url: string = brk: {
@@ -1975,7 +1975,7 @@ pub const Example = struct {
Output.prettyErrorln("package.json is missing tarball url. This is an internal error!", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
progress.name = "Downloading tarball";
@@ -2000,7 +2000,7 @@ pub const Example = struct {
refresher.refresh();
Output.prettyErrorln("Error fetching tarball: <r><red>{d}<r>", .{response.status_code});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
refresher.refresh();
@@ -2027,12 +2027,12 @@ pub const Example = struct {
error.WouldBlock => {
Output.prettyErrorln("Request timed out while trying to fetch examples list. Please try again", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
},
else => {
Output.prettyErrorln("<r><red>{s}<r> while trying to fetch examples list. Please try again", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
},
}
};
@@ -2040,7 +2040,7 @@ pub const Example = struct {
if (response.status_code != 200) {
Output.prettyErrorln("<r><red>{d}<r> fetching examples :( {s}", .{ response.status_code, mutable.list.items });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
initializeStore();
@@ -2052,12 +2052,12 @@ pub const Example = struct {
} else {
try ctx.log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
- std.os.exit(1);
+ Global.exit(1);
Output.flush();
} else {
Output.prettyErrorln("Error parsing examples: <r><red>{s}<r>", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
};
@@ -2068,7 +2068,7 @@ pub const Example = struct {
try ctx.log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
if (examples_object.asProperty("examples")) |q| {
@@ -2093,7 +2093,7 @@ pub const Example = struct {
Output.prettyErrorln("Corrupt examples data: expected object but received {s}", .{@tagName(examples_object.data)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
};
@@ -2154,7 +2154,7 @@ const GitHandler = struct {
thread = std.Thread.spawn(.{}, spawnThread, .{ destination, PATH, verbose }) catch |err| {
Output.prettyErrorln("<r><red>{s}<r>", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
}
diff --git a/src/cli/install_completions_command.zig b/src/cli/install_completions_command.zig
index 20b56c2b1..b64b31ebd 100644
--- a/src/cli/install_completions_command.zig
+++ b/src/cli/install_completions_command.zig
@@ -55,11 +55,11 @@ pub const InstallCompletionsCommand = struct {
switch (shell) {
.bash => {
Output.prettyErrorln("<r><red>error:<r> Bash completions aren't implemented yet, just zsh & fish. A PR is welcome!", .{});
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
},
.unknown => {
Output.prettyErrorln("<r><red>error:<r> Unknown or unsupported shell. Please set $SHELL to one of zsh, fish, or bash. To manually output completions, run this:\n bun getcompletes", .{});
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
},
else => {},
}
@@ -69,7 +69,7 @@ pub const InstallCompletionsCommand = struct {
if (std.os.getenvZ("IS_BUN_AUTO_UPDATE") == null) {
if (!stdout.isTty()) {
try stdout.writeAll(shell.completions());
- std.os.exit(0);
+ Global.exit(0);
}
}
@@ -79,7 +79,7 @@ pub const InstallCompletionsCommand = struct {
var cwd = std.os.getcwd(&cwd_buf) catch {
Output.prettyErrorln("<r><red>error<r>: Could not get current working directory", .{});
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
};
for (std.os.argv) |arg, i| {
@@ -100,7 +100,7 @@ pub const InstallCompletionsCommand = struct {
if (!std.fs.path.isAbsolute(completions_dir)) {
Output.prettyErrorln("<r><red>error:<r> Please pass an absolute path. {s} is invalid", .{completions_dir});
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
}
break :found std.fs.openDirAbsolute(completions_dir, .{
@@ -108,7 +108,7 @@ pub const InstallCompletionsCommand = struct {
}) catch |err| {
Output.prettyErrorln("<r><red>error:<r> accessing {s} errored {s}", .{ completions_dir, @errorName(err) });
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
};
}
@@ -248,7 +248,7 @@ pub const InstallCompletionsCommand = struct {
.{},
);
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
};
const filename = switch (shell) {
@@ -268,7 +268,7 @@ pub const InstallCompletionsCommand = struct {
@errorName(err),
});
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
};
output_file.writeAll(shell.completions()) catch |err| {
@@ -277,7 +277,7 @@ pub const InstallCompletionsCommand = struct {
@errorName(err),
});
Output.flush();
- std.os.exit(fail_exit_code);
+ Global.exit(fail_exit_code);
};
defer output_file.close();
diff --git a/src/cli/package_manager_command.zig b/src/cli/package_manager_command.zig
index 447a21775..63fb416b5 100644
--- a/src/cli/package_manager_command.zig
+++ b/src/cli/package_manager_command.zig
@@ -2,7 +2,7 @@ const Command = @import("../cli.zig").Command;
const PackageManager = @import("../install/install.zig").PackageManager;
const std = @import("std");
const strings = @import("strings");
-
+const Global = @import("../global.zig").Global;
pub const PackageManagerCommand = struct {
pub fn printHelp(_: std.mem.Allocator) void {}
pub fn exec(ctx: Command.Context) !void {
@@ -16,7 +16,7 @@ pub const PackageManagerCommand = struct {
if (args.len == 0) {
printHelp(ctx.allocator);
- std.os.exit(0);
+ Global.exit(0);
}
first = std.mem.span(args[0]);
diff --git a/src/cli/run_command.zig b/src/cli/run_command.zig
index 86170965d..62f9b88e6 100644
--- a/src/cli/run_command.zig
+++ b/src/cli/run_command.zig
@@ -265,7 +265,7 @@ pub const RunCommand = struct {
Output.prettyErrorln("<r><red>Script error<r> <b>\"{s}\"<r> exited with {d} status<r>", .{ name, result.Exited });
Output.flush();
- std.os.exit(result.Exited);
+ Global.exit(result.Exited);
}
return true;
@@ -305,7 +305,7 @@ pub const RunCommand = struct {
if (result.Exited > 0) {
Output.prettyErrorln("<r><red>error<r> <b>\"{s}\"<r> exited with {d} status<r>", .{ std.fs.path.basename(executable), result.Exited });
Output.flush();
- std.os.exit(result.Exited);
+ Global.exit(result.Exited);
}
return true;
@@ -615,7 +615,7 @@ pub const RunCommand = struct {
const shebang_size = file.pread(&shebang_buf, 0) catch |err| {
Output.prettyErrorln("<r><red>error<r>: Failed to read file <b>{s}<r> due to error <b>{s}<r>", .{ file_path, @errorName(err) });
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
var shebang: string = shebang_buf[0..shebang_size];
@@ -639,7 +639,7 @@ pub const RunCommand = struct {
@errorName(err),
});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
return true;
@@ -877,7 +877,7 @@ pub const RunCommand = struct {
if (comptime log_errors) {
Output.prettyError("<r>No \"scripts\" in package.json found.", .{});
Output.flush();
- std.os.exit(0);
+ Global.exit(0);
}
return false;
@@ -924,7 +924,7 @@ pub const RunCommand = struct {
if (comptime log_errors) {
Output.prettyError("<r><red>error:<r> Missing script: <b>{s}<r>\n", .{script_name_to_search});
Output.flush();
- std.os.exit(0);
+ Global.exit(0);
}
return false;
diff --git a/src/cli/test_command.zig b/src/cli/test_command.zig
index 5a479189f..f7010d521 100644
--- a/src/cli/test_command.zig
+++ b/src/cli/test_command.zig
@@ -318,7 +318,7 @@ pub const TestCommand = struct {
Output.flush();
if (reporter.summary.fail > 0) {
- std.os.exit(1);
+ Global.exit(1);
}
}
diff --git a/src/cli/upgrade_command.zig b/src/cli/upgrade_command.zig
index 36ad03537..3febe4cee 100644
--- a/src/cli/upgrade_command.zig
+++ b/src/cli/upgrade_command.zig
@@ -219,11 +219,11 @@ pub const UpgradeCommand = struct {
try log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
} else {
Output.prettyErrorln("Error parsing releases from GitHub: <r><red>{s}<r>", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
}
@@ -241,7 +241,7 @@ pub const UpgradeCommand = struct {
try log.printForLogLevelWithEnableAnsiColors(Output.errorWriter(), false);
}
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
return null;
@@ -257,7 +257,7 @@ pub const UpgradeCommand = struct {
const json_type: js_ast.Expr.Tag = @as(js_ast.Expr.Tag, expr.data);
Output.prettyErrorln("JSON error - expected an object but received {s}", .{@tagName(json_type)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
return null;
@@ -276,7 +276,7 @@ pub const UpgradeCommand = struct {
Output.prettyErrorln("JSON Error parsing releases from GitHub: <r><red>tag_name<r> is missing?\n{s}", .{metadata_body.list.items});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
return null;
@@ -332,7 +332,7 @@ pub const UpgradeCommand = struct {
}
Output.flush();
- std.os.exit(0);
+ Global.exit(0);
}
return null;
@@ -343,7 +343,7 @@ pub const UpgradeCommand = struct {
_exec(ctx) catch |err| {
Output.prettyErrorln("<r>bun upgrade failed with error: <red><b>{s}<r>\n\n<cyan>Please upgrade manually<r>:\n <b>curl https://bun.sh/install | bash<r>\n\n", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
}
@@ -379,7 +379,7 @@ pub const UpgradeCommand = struct {
},
);
Output.flush();
- std.os.exit(0);
+ Global.exit(0);
}
if (version.name() == null) {
@@ -388,7 +388,7 @@ pub const UpgradeCommand = struct {
.{},
);
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
}
@@ -435,7 +435,7 @@ pub const UpgradeCommand = struct {
if (bytes.len == 0) {
Output.prettyErrorln("<r><red>error:<r> Failed to download the latest version of bun. Received empty content", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
const version_name = version.name().?;
@@ -444,12 +444,12 @@ pub const UpgradeCommand = struct {
var save_dir = save_dir_.makeOpenPath(version_name, .{ .iterate = true }) catch {
Output.prettyErrorln("<r><red>error:<r> Failed to open temporary directory", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
var tmpdir_path = std.os.getFdPath(save_dir.fd, &tmpdir_path_buf) catch {
Output.prettyErrorln("<r><red>error:<r> Failed to read temporary directory", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
tmpdir_path_buf[tmpdir_path.len] = 0;
@@ -461,7 +461,7 @@ pub const UpgradeCommand = struct {
var zip_file = save_dir.createFileZ(tmpname, .{ .truncate = true }) catch |err| {
Output.prettyErrorln("<r><red>error:<r> Failed to open temp file {s}", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
{
@@ -469,7 +469,7 @@ pub const UpgradeCommand = struct {
save_dir.deleteFileZ(tmpname) catch {};
Output.prettyErrorln("<r><red>error:<r> Failed to write to temp file {s}", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
zip_file.close();
}
@@ -483,7 +483,7 @@ pub const UpgradeCommand = struct {
save_dir.deleteFileZ(tmpname) catch {};
Output.prettyErrorln("<r><red>error:<r> Failed to locate \"unzip\" in PATH. bun upgrade needs \"unzip\" to work.", .{});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
// We could just embed libz2
@@ -508,14 +508,14 @@ pub const UpgradeCommand = struct {
save_dir.deleteFileZ(tmpname) catch {};
Output.prettyErrorln("<r><red>error:<r> Failed to spawn unzip due to {s}.", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
if (unzip_result.Exited != 0) {
Output.prettyErrorln("<r><red>Unzip failed<r> (exit code: {d})", .{unzip_result.Exited});
Output.flush();
save_dir.deleteFileZ(tmpname) catch {};
- std.os.exit(1);
+ Global.exit(1);
}
}
@@ -534,14 +534,14 @@ pub const UpgradeCommand = struct {
save_dir_.deleteTree(version_name) catch {};
Output.prettyErrorln("<r><red>error<r> Failed to verify bun {s}<r>)", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
if (result.term.Exited != 0) {
save_dir_.deleteTree(version_name) catch {};
Output.prettyErrorln("<r><red>error<r> failed to verify bun<r> (exit code: {d})", .{result.term.Exited});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
if (!strings.eql(std.mem.trim(u8, result.stdout, " \n\r\t"), version_name)) {
@@ -555,7 +555,7 @@ pub const UpgradeCommand = struct {
},
);
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
}
}
@@ -572,7 +572,7 @@ pub const UpgradeCommand = struct {
save_dir_.deleteTree(version_name) catch {};
Output.prettyErrorln("<r><red>error:<r> Failed to open bun's install directory {s}", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
if (env_loader.map.get("BUN_DRY_RUN") == null) {
@@ -580,7 +580,7 @@ pub const UpgradeCommand = struct {
save_dir_.deleteTree(version_name) catch {};
Output.prettyErrorln("<r><red>error:<r> Failed to move new version of bun due to {s}. You could try the install script instead:\n curl -L https://bun.sh/install | bash", .{@errorName(err)});
Output.flush();
- std.os.exit(1);
+ Global.exit(1);
};
}