diff options
author | 2023-02-16 15:05:15 -0800 | |
---|---|---|
committer | 2023-02-16 15:05:15 -0800 | |
commit | d95404fd7a096c58bf7c3d844e6fac13dd9c7d22 (patch) | |
tree | 0c577de8a502422799c363e1ef92f65a5dbeddda | |
parent | 7762f3fad739e7c50f0ebe29b22b55a8daf7f559 (diff) | |
download | bun-d95404fd7a096c58bf7c3d844e6fac13dd9c7d22.tar.gz bun-d95404fd7a096c58bf7c3d844e6fac13dd9c7d22.tar.zst bun-d95404fd7a096c58bf7c3d844e6fac13dd9c7d22.zip |
Implement `machine` for Linux (#2088)
Diffstat (limited to '')
-rw-r--r-- | src/bun.js/node/node_os.zig | 13 | ||||
-rw-r--r-- | src/bun.js/os.exports.js | 2 | ||||
-rw-r--r-- | test/bun.js/os.test.js | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index f7a91393e..b0c693fb4 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -26,6 +26,7 @@ pub const Os = struct { module.put(globalObject, JSC.ZigString.static("homedir"), JSC.NewFunction(globalObject, JSC.ZigString.static("homedir"), 0, homedir, true)); module.put(globalObject, JSC.ZigString.static("hostname"), JSC.NewFunction(globalObject, JSC.ZigString.static("hostname"), 0, hostname, true)); module.put(globalObject, JSC.ZigString.static("loadavg"), JSC.NewFunction(globalObject, JSC.ZigString.static("loadavg"), 0, loadavg, true)); + module.put(globalObject, JSC.ZigString.static("machine"), JSC.NewFunction(globalObject, JSC.ZigString.static("machine"), 0, machine, true)); module.put(globalObject, JSC.ZigString.static("networkInterfaces"), JSC.NewFunction(globalObject, JSC.ZigString.static("networkInterfaces"), 0, networkInterfaces, true)); module.put(globalObject, JSC.ZigString.static("platform"), JSC.NewFunction(globalObject, JSC.ZigString.static("platform"), 0, platform, true)); module.put(globalObject, JSC.ZigString.static("release"), JSC.NewFunction(globalObject, JSC.ZigString.static("release"), 0, release, true)); @@ -289,6 +290,18 @@ pub const Os = struct { }); } + pub fn machine(globalThis: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { + JSC.markBinding(@src()); + + const machine_name = if (comptime Environment.isLinux) b: { + const uts = std.os.uname(); + break :b std.mem.span(&uts.machine); + } + else "unknown"; + + return JSC.ZigString.init(machine_name).withEncoding().toValueGC(globalThis); + } + pub fn networkInterfaces(globalThis: *JSC.JSGlobalObject, _: *JSC.CallFrame) callconv(.C) JSC.JSValue { JSC.markBinding(@src()); diff --git a/src/bun.js/os.exports.js b/src/bun.js/os.exports.js index 60eacab55..ab3e5cee7 100644 --- a/src/bun.js/os.exports.js +++ b/src/bun.js/os.exports.js @@ -8,6 +8,7 @@ function bound(obj) { homedir: obj.homedir.bind(obj), hostname: obj.hostname.bind(obj), loadavg: obj.loadavg.bind(obj), + machine: obj.machine.bind(obj), networkInterfaces: obj.networkInterfaces.bind(obj), platform: obj.platform.bind(obj), release: obj.release.bind(obj), @@ -35,6 +36,7 @@ export var { homedir, hostname, loadavg, + machine, networkInterfaces, platform, release, diff --git a/test/bun.js/os.test.js b/test/bun.js/os.test.js index c907e74ef..9ae82d8ae 100644 --- a/test/bun.js/os.test.js +++ b/test/bun.js/os.test.js @@ -115,6 +115,10 @@ it("networkInterfaces", () => { } }); +it("machine", () => { + expect(os.machine().length > 1).toBe(true); +}); + it("EOL", () => { if (process.platform === "win32") expect(os.EOL).toBe("\\r\\n"); else expect(os.EOL).toBe("\n"); |