Skip to content

Commit

Permalink
os: add os.endianness() function
Browse files Browse the repository at this point in the history
  • Loading branch information
TooTallNate committed Nov 8, 2012
1 parent 3c91a7a commit 5e4e87a
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doc/api/os.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Use `require('os')` to access this module.

Returns the operating system's default directory for temp files.

## os.endianness()

Returns the endianness of the CPU. Possible values are `"BE"` or `"LE"`.

## os.hostname()

Returns the hostname of the operating system.
Expand Down
1 change: 1 addition & 0 deletions lib/os.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
var binding = process.binding('os');
var util = require('util');

exports.endianness = binding.getEndianness;
exports.hostname = binding.getHostname;
exports.loadavg = binding.getLoadAvg;
exports.uptime = binding.getUptime;
Expand Down
9 changes: 9 additions & 0 deletions src/node_os.cc
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,14 @@ namespace node {

using namespace v8;

static Handle<Value> GetEndianness(const Arguments& args) {
HandleScope scope;
int i = 1;
bool big = (*(char *)&i) == 0;
Local<String> endianness = String::New(big ? "BE" : "LE");
return scope.Close(endianness);
}

static Handle<Value> GetHostname(const Arguments& args) {
HandleScope scope;
char s[255];
Expand Down Expand Up @@ -242,6 +250,7 @@ static Handle<Value> GetInterfaceAddresses(const Arguments& args) {
void OS::Initialize(v8::Handle<v8::Object> target) {
HandleScope scope;

NODE_SET_METHOD(target, "getEndianness", GetEndianness);
NODE_SET_METHOD(target, "getHostname", GetHostname);
NODE_SET_METHOD(target, "getLoadAvg", GetLoadAvg);
NODE_SET_METHOD(target, "getUptime", GetUptime);
Expand Down
4 changes: 4 additions & 0 deletions test/simple/test-os.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ assert.equal(os.tmpDir(), '/temp');
process.env.TEMP = '';
assert.equal(os.tmpDir(), t);

var endianness = os.endianness();
console.log('endianness = %s', endianness);
assert.ok(/[BL]E/.test(endianness));

var hostname = os.hostname();
console.log('hostname = %s', hostname);
assert.ok(hostname.length > 0);
Expand Down

0 comments on commit 5e4e87a

Please sign in to comment.