diff options
author | 2021-12-18 20:03:00 -0800 | |
---|---|---|
committer | 2021-12-18 20:03:00 -0800 | |
commit | e2d6c692c4d6e6efef2a3ac1229b80764736a0e2 (patch) | |
tree | 2b4452655cca7cfa78f764dc3a7c61dd04359103 /src/cli/upgrade_command.zig | |
parent | 501fab0befb92ac5d35048b959a11befaa3e3e5e (diff) | |
download | bun-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.zig | 47 |
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(); |