diff options
author | 2021-11-01 04:03:43 -0700 | |
---|---|---|
committer | 2021-11-01 04:03:43 -0700 | |
commit | 4d4966592e75f27b5f58a1c3132dae47bc6f6afc (patch) | |
tree | e52fbb18842f87fc510a24fb1b3e1725af17f164 | |
parent | f1fff3af7e0218efeb41dc08008dbe0f8480383c (diff) | |
download | bun-4d4966592e75f27b5f58a1c3132dae47bc6f6afc.tar.gz bun-4d4966592e75f27b5f58a1c3132dae47bc6f6afc.tar.zst bun-4d4966592e75f27b5f58a1c3132dae47bc6f6afc.zip |
[upgrade] Reinstall completions on `bun upgrade`
-rw-r--r-- | src/cli/upgrade_command.zig | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/cli/upgrade_command.zig b/src/cli/upgrade_command.zig index 4ba3ff05a..f2a12c145 100644 --- a/src/cli/upgrade_command.zig +++ b/src/cli/upgrade_command.zig @@ -78,7 +78,6 @@ pub const UpgradeCheckerThread = struct { } fn _run(env_loader: *DotEnv.Loader) anyerror!void { - var rand = std.rand.DefaultPrng.init(@intCast(u64, @maximum(std.time.milliTimestamp(), 0))); const delay = rand.random.intRangeAtMost(u64, 100, 10000); std.time.sleep(std.time.ns_per_ms * delay); @@ -285,7 +284,7 @@ pub const UpgradeCommand = struct { if (asset.asProperty("name")) |name_| { if (name_.expr.asString(allocator)) |name| { if (comptime isDebug) { - Output.prettyln("Comparing {s} vs {s}", .{name, Version.zip_filename}); + Output.prettyln("Comparing {s} vs {s}", .{ name, Version.zip_filename }); Output.flush(); } if (strings.eqlComptime(name, Version.zip_filename)) { @@ -294,7 +293,7 @@ pub const UpgradeCommand = struct { Output.prettyln("Found Zip {s}", .{version.zip_url}); Output.flush(); } - + if (asset.asProperty("size")) |size_| { if (size_.expr.data == .e_number) { version.size = @intCast(u32, @maximum(@floatToInt(i32, std.math.ceil(size_.expr.data.e_number.value)), 0)); @@ -558,6 +557,24 @@ pub const UpgradeCommand = struct { }; } + // Ensure completions are up to date. + { + var completions_argv = [_]string{ + target_filename, + "completions", + }; + + env_loader.map.put("IS_BUN_AUTO_UPDATE", "true") catch unreachable; + var buf_map = try env_loader.map.cloneToBufMap(ctx.allocator); + _ = std.ChildProcess.exec(.{ + .allocator = ctx.allocator, + .argv = &completions_argv, + .cwd = target_dirname, + .max_output_bytes = 4096, + .env_map = &buf_map, + }) catch undefined; + } + Output.printStartEnd(ctx.start_time, std.time.nanoTimestamp()); Output.prettyErrorln("<r> Upgraded.\n\n<b><green>Welcome to Bun v{s}!<r>\n\n Report any bugs:\n https://github.com/Jarred-Sumner/bun/issues\n\n What's new:\n https://github.com/Jarred-Sumner/bun/releases/tag/{s}<r>", .{ version_name, version.tag }); |