diff options
Diffstat (limited to 'src/javascript/jsc/node')
-rw-r--r-- | src/javascript/jsc/node/syscall.zig | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/javascript/jsc/node/syscall.zig b/src/javascript/jsc/node/syscall.zig index 091b3d632..d51062a83 100644 --- a/src/javascript/jsc/node/syscall.zig +++ b/src/javascript/jsc/node/syscall.zig @@ -23,6 +23,27 @@ pub const S = struct { }; const sys = std.os.system; +const statSym = if (Environment.isMac) + C.stat +else if (Environment.isLinux) + linux.stat +else + @compileError("STAT"); + +const fstatSym = if (Environment.isMac) + C.fstat +else if (Environment.isLinux) + linux.fstat +else + @compileError("STAT"); + +const lstat64 = if (Environment.isMac) + C.lstat +else if (Environment.isLinux) + linux.lstat +else + @compileError("STAT"); + pub const Tag = enum(u8) { TODO, @@ -76,11 +97,6 @@ const mode_t = os.mode_t; const open_sym = system.open; -const fstat_sym = if (builtin.os.tag == .linux) - sys.fstat64 -else - sys.fstat; - const mem = std.mem; pub fn getcwd(buf: *[bun.MAX_PATH_BYTES]u8) Maybe([]const u8) { @@ -105,19 +121,19 @@ pub fn chdir(destination: [:0]const u8) Maybe(void) { pub fn stat(path: [:0]const u8) Maybe(os.Stat) { var stat_ = mem.zeroes(os.Stat); - if (Maybe(os.Stat).errnoSys(sys.stat(path, &stat_), .stat)) |err| return err; + if (Maybe(os.Stat).errnoSys(statSym(path, &stat_), .stat)) |err| return err; return Maybe(os.Stat){ .result = stat_ }; } pub fn lstat(path: [:0]const u8) Maybe(os.Stat) { var stat_ = mem.zeroes(os.Stat); - if (Maybe(os.Stat).errnoSys(C.lstat(path, &stat_), .lstat)) |err| return err; + if (Maybe(os.Stat).errnoSys(lstat64(path, &stat_), .lstat)) |err| return err; return Maybe(os.Stat){ .result = stat_ }; } pub fn fstat(fd: JSC.Node.FileDescriptor) Maybe(os.Stat) { var stat_ = mem.zeroes(os.Stat); - if (Maybe(os.Stat).errnoSys(fstat_sym(fd, &stat_), .fstat)) |err| return err; + if (Maybe(os.Stat).errnoSys(fstatSym(fd, &stat_), .fstat)) |err| return err; return Maybe(os.Stat){ .result = stat_ }; } |