From e2a17344dc543c9c652cfe2b14cd2709dd6cfd22 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 28 Aug 2023 04:39:16 -0700 Subject: just kernel32 things (#4354) * just kernel32 things * more * Update linux_c.zig * Update windows_c.zig * Add workaround Workaround https://github.com/ziglang/zig/issues/16980 * Rename http.zig to bun_dev_http_server.zig * Rename usages * more * more * more * thanks tigerbeetle * Rename `JSC.Node.Syscall` -> `bun.sys` * more * woops * more! * hmm * it says there are only 37 errors, but that's not true * populate argv * it says 32 errors! * 24 errors * fix regular build * 12 left! * Still 12 left! * more * 2 errors left... * 1 more error * Add link to Tigerbeetle * Fix the remainign error * Fix test timeout * Update syscall.zig --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/cli/create_command.zig | 63 ++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 25 deletions(-) (limited to 'src/cli/create_command.zig') diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig index 284de1fd5..8264bf771 100644 --- a/src/cli/create_command.zig +++ b/src/cli/create_command.zig @@ -554,7 +554,7 @@ pub const CreateCommand = struct { progress.refresh(); package_json_contents = plucker.contents; - package_json_file = std.fs.File{ .handle = plucker.fd }; + package_json_file = std.fs.File{ .handle = bun.fdcast(plucker.fd) }; } } }, @@ -615,9 +615,13 @@ pub const CreateCommand = struct { var infile = try entry.dir.dir.openFile(entry.basename, .{ .mode = .read_only }); defer infile.close(); - // Assumption: you only really care about making sure something that was executable is still executable - const stat = infile.stat() catch continue; - _ = C.fchmod(outfile.handle, stat.mode); + if (comptime Environment.isPosix) { + // Assumption: you only really care about making sure something that was executable is still executable + const stat = infile.stat() catch continue; + _ = C.fchmod(outfile.handle, stat.mode); + } else { + bun.todo(@src(), void{}); + } CopyFile.copyFile(infile.handle, outfile.handle) catch |err| { Output.prettyErrorln("{s}: copying file {s}", .{ @errorName(err), entry.path }); @@ -633,24 +637,33 @@ pub const CreateCommand = struct { read_package_json: { if (package_json_file) |pkg| { - const stat = pkg.stat() catch |err| { - node.end(); + const size = brk: { + if (comptime Environment.isWindows) { + break :brk try pkg.getEndPos(); + } - progress.refresh(); + const stat = pkg.stat() catch |err| { + node.end(); - package_json_file = null; - Output.prettyErrorln("Error reading package.json: {s}", .{@errorName(err)}); - break :read_package_json; - }; + progress.refresh(); - if (stat.kind != .file or stat.size == 0) { - package_json_file = null; - node.end(); + package_json_file = null; + Output.prettyErrorln("Error reading package.json: {s}", .{@errorName(err)}); + break :read_package_json; + }; - progress.refresh(); - break :read_package_json; - } - package_json_contents = try MutableString.init(ctx.allocator, stat.size); + if (stat.kind != .file or stat.size == 0) { + package_json_file = null; + node.end(); + + progress.refresh(); + break :read_package_json; + } + + break :brk stat.size; + }; + + package_json_contents = try MutableString.init(ctx.allocator, size); package_json_contents.list.expandToCapacity(); _ = pkg.preadAll(package_json_contents.list.items, 0) catch |err| { @@ -1717,36 +1730,36 @@ pub const Example = struct { { var folders = [3]std.fs.IterableDir{ .{ - .dir = .{ .fd = 0 }, + .dir = .{ .fd = bun.fdcast(bun.invalid_fd) }, }, .{ - .dir = .{ .fd = 0 }, + .dir = .{ .fd = bun.fdcast(bun.invalid_fd) }, }, - .{ .dir = .{ .fd = 0 } }, + .{ .dir = .{ .fd = bun.fdcast(bun.invalid_fd) } }, }; if (env_loader.map.get("BUN_CREATE_DIR")) |home_dir| { var parts = [_]string{home_dir}; var outdir_path = filesystem.absBuf(&parts, &home_dir_buf); - folders[0] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = 0 } }; + folders[0] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = bun.fdcast(bun.invalid_fd) } }; } { var parts = [_]string{ filesystem.top_level_dir, BUN_CREATE_DIR }; var outdir_path = filesystem.absBuf(&parts, &home_dir_buf); - folders[1] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = 0 } }; + folders[1] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = bun.fdcast(bun.invalid_fd) } }; } if (env_loader.map.get("HOME")) |home_dir| { var parts = [_]string{ home_dir, BUN_CREATE_DIR }; var outdir_path = filesystem.absBuf(&parts, &home_dir_buf); - folders[2] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = 0 } }; + folders[2] = std.fs.cwd().openIterableDir(outdir_path, .{}) catch .{ .dir = .{ .fd = bun.fdcast(bun.invalid_fd) } }; } // subfolders with package.json for (folders) |folder__| { const folder_ = folder__.dir; - if (folder_.fd != 0) { + if (folder_.fd != bun.fdcast(bun.invalid_fd)) { const folder: std.fs.Dir = folder_; var iter = (std.fs.IterableDir{ .dir = folder }).iterate(); -- cgit v1.2.3