aboutsummaryrefslogtreecommitdiff
path: root/src/cli.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-05-30 18:26:18 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-05-30 18:26:18 -0700
commitdd72bf5ab657af89d45ee629e8432d9b860a2351 (patch)
tree9646821a9dc179f2fea2361cbed534ac441c550a /src/cli.zig
parent741d35f0b3f50edd58592259890ca0ef71d2b8dd (diff)
downloadbun-dd72bf5ab657af89d45ee629e8432d9b860a2351.tar.gz
bun-dd72bf5ab657af89d45ee629e8432d9b860a2351.tar.zst
bun-dd72bf5ab657af89d45ee629e8432d9b860a2351.zip
cool
Former-commit-id: 7dc3ee4c893a476cee1e78c19f154f33a9d824a9
Diffstat (limited to 'src/cli.zig')
-rw-r--r--src/cli.zig18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/cli.zig b/src/cli.zig
index de0be93e2..74ba7e252 100644
--- a/src/cli.zig
+++ b/src/cli.zig
@@ -329,7 +329,18 @@ pub const Cli = struct {
} else |err| {}
did_write = true;
- var root_dir = try std.fs.openDirAbsolute(result.outbase, std.fs.Dir.OpenDirOptions{});
+ var root_dir = std.fs.openDirAbsolute(result.outbase, std.fs.Dir.OpenDirOptions{}) catch brk: {
+ std.fs.makeDirAbsolute(result.outbase) catch |err| {
+ Output.printErrorln("error: Unable to mkdir \"{s}\": \"{s}\"", .{ result.outbase, @errorName(err) });
+ std.os.exit(1);
+ };
+
+ var handle = std.fs.openDirAbsolute(result.outbase, std.fs.Dir.OpenDirOptions{}) catch |err2| {
+ Output.printErrorln("error: Unable to open \"{s}\": \"{s}\"", .{ result.outbase, @errorName(err2) });
+ std.os.exit(1);
+ };
+ break :brk handle;
+ };
// On posix, file handles automatically close on process exit by the OS
// Closing files shows up in profiling.
// So don't do that unless we actually need to.
@@ -360,8 +371,13 @@ pub const Cli = struct {
.truncate = true,
}) catch |err2| return err2);
};
+
try _handle.seekTo(0);
+ if (FeatureFlags.disable_filesystem_cache) {
+ _ = std.os.fcntl(_handle.handle, std.os.F_NOCACHE, 1) catch 0;
+ }
+
defer {
if (do_we_need_to_close) {
_handle.close();