aboutsummaryrefslogtreecommitdiff
path: root/src/cli/upgrade_command.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-18 20:03:00 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-18 20:03:00 -0800
commite2d6c692c4d6e6efef2a3ac1229b80764736a0e2 (patch)
tree2b4452655cca7cfa78f764dc3a7c61dd04359103 /src/cli/upgrade_command.zig
parent501fab0befb92ac5d35048b959a11befaa3e3e5e (diff)
downloadbun-e2d6c692c4d6e6efef2a3ac1229b80764736a0e2.tar.gz
bun-e2d6c692c4d6e6efef2a3ac1229b80764736a0e2.tar.zst
bun-e2d6c692c4d6e6efef2a3ac1229b80764736a0e2.zip
Use new http in `bun upgrade`
Diffstat (limited to 'src/cli/upgrade_command.zig')
-rw-r--r--src/cli/upgrade_command.zig47
1 files changed, 23 insertions, 24 deletions
diff --git a/src/cli/upgrade_command.zig b/src/cli/upgrade_command.zig
index f2a12c145..61000023f 100644
--- a/src/cli/upgrade_command.zig
+++ b/src/cli/upgrade_command.zig
@@ -21,18 +21,18 @@ const bundler = @import("../bundler.zig");
const NodeModuleBundle = @import("../node_module_bundle.zig").NodeModuleBundle;
const fs = @import("../fs.zig");
const URL = @import("../query_string_map.zig").URL;
-const HTTPClient = @import("../http_client.zig");
+const HTTP = @import("http");
const ParseJSON = @import("../json_parser.zig").ParseJSON;
const Archive = @import("../libarchive/libarchive.zig").Archive;
const Zlib = @import("../zlib.zig");
const JSPrinter = @import("../js_printer.zig");
const DotEnv = @import("../env_loader.zig");
-const NPMClient = @import("../which_npm_client.zig").NPMClient;
const which = @import("../which.zig").which;
const clap = @import("clap");
const Lock = @import("../lock.zig").Lock;
const Headers = @import("../javascript/jsc/webcore/response.zig").Headers;
const CopyFile = @import("../copy_file.zig");
+const NetworkThread = @import("network_thread");
pub var initialized_store = false;
pub fn initializeStore() void {
@@ -145,18 +145,6 @@ pub const UpgradeCommand = struct {
),
);
- var client = HTTPClient.init(
- allocator,
- .GET,
- api_url,
- header_entries,
- headers_buf,
- );
- client.timeout = timeout;
- if (!silent) {
- client.progress_node = progress;
- }
-
if (env_loader.map.get("GITHUB_ACCESS_TOKEN")) |access_token| {
if (access_token.len > 0) {
headers_buf = try std.fmt.allocPrint(allocator, default_github_headers ++ "Access-TokenBearer {s}", .{access_token});
@@ -177,7 +165,13 @@ pub const UpgradeCommand = struct {
}
var metadata_body = try MutableString.init(allocator, 2048);
- var response = try client.send("", &metadata_body);
+ var request_body = try MutableString.init(allocator, 0);
+
+ // ensure very stable memory address
+ var async_http: *HTTP.AsyncHTTP = allocator.create(HTTP.AsyncHTTP) catch unreachable;
+ async_http.* = try HTTP.AsyncHTTP.init(allocator, .GET, api_url, header_entries, headers_buf, &metadata_body, &request_body, 60 * std.time.ns_per_min);
+ if (!silent) async_http.client.progress_node = progress;
+ const response = try async_http.sendSync();
switch (response.status_code) {
404 => return error.HTTP404,
@@ -326,6 +320,8 @@ pub const UpgradeCommand = struct {
const exe_subpath = Version.folder_name ++ std.fs.path.sep_str ++ "bun";
pub fn exec(ctx: Command.Context) !void {
+ try NetworkThread.init();
+
var filesystem = try fs.FileSystem.init1(ctx.allocator, null);
var env_loader: DotEnv.Loader = brk: {
var map = try ctx.allocator.create(DotEnv.Map);
@@ -375,21 +371,24 @@ pub const UpgradeCommand = struct {
var refresher = std.Progress{};
var progress = try refresher.start("Downloading", version.size);
refresher.refresh();
+ var async_http = ctx.allocator.create(HTTP.AsyncHTTP) catch unreachable;
+ var zip_file_buffer = try ctx.allocator.create(MutableString);
+ zip_file_buffer.* = try MutableString.init(ctx.allocator, @maximum(version.size, 1024));
+ var request_buffer = try MutableString.init(ctx.allocator, 0);
- var client = HTTPClient.init(
+ async_http.* = try HTTP.AsyncHTTP.init(
ctx.allocator,
.GET,
URL.parse(version.zip_url),
.{},
"",
+ zip_file_buffer,
+ &request_buffer,
+ timeout,
);
- client.timeout = timeout;
- client.progress_node = progress;
- var zip_file_buffer = try MutableString.init(ctx.allocator, @maximum(version.size, 1024));
- var response = try client.send(
- "",
- &zip_file_buffer,
- );
+ async_http.client.timeout = timeout;
+ async_http.client.progress_node = progress;
+ const response = try async_http.sendSync();
switch (response.status_code) {
404 => return error.HTTP404,
@@ -400,7 +399,7 @@ pub const UpgradeCommand = struct {
else => return error.HTTPError,
}
- var bytes = zip_file_buffer.toOwnedSliceLeaky();
+ const bytes = zip_file_buffer.toOwnedSliceLeaky();
progress.end();
refresher.refresh();