Browse Source

Add os module and getHostname

v0.7.4-release
Brian White 14 years ago
committed by Ryan Dahl
parent
commit
f1762ff815
  1. 1
      cmake/node_build.cmake
  2. 1
      doc/api/_toc.markdown
  3. 7
      doc/api/os.markdown
  4. 3
      lib/os.js
  5. 1
      src/node_extensions.h
  6. 34
      src/node_os.cc
  7. 17
      src/node_os.h
  8. 5
      test/simple/test-os-hostname.js
  9. 1
      wscript

1
cmake/node_build.cmake

@ -32,6 +32,7 @@ set(node_sources
src/node_stdio.cc
src/node_timer.cc
src/node_script.cc
src/node_os.cc
src/node_natives.h
${node_extra_src})

1
doc/api/_toc.markdown

@ -28,6 +28,7 @@
* [Child Processes](child_processes.html)
* [Assertion Testing](assert.html)
* [TTY](tty.html)
* [OS](os.html)
* Appendixes
* [Appendix 1: Recommended Third-party Modules](appendix_1.html)
* [Appendix 2: Deprecated API's](appendix_2.html)

7
doc/api/os.markdown

@ -0,0 +1,7 @@
## os Module
Use `require('os')` to access this module.
### tls.getHostname
Returns the hostname of the operating system.

3
lib/os.js

@ -0,0 +1,3 @@
var binding = process.binding('os');
exports.getHostname = binding.getHostname;

1
src/node_extensions.h

@ -12,5 +12,6 @@ NODE_EXT_LIST_ITEM(node_net)
NODE_EXT_LIST_ITEM(node_http_parser)
NODE_EXT_LIST_ITEM(node_signal_watcher)
NODE_EXT_LIST_ITEM(node_stdio)
NODE_EXT_LIST_ITEM(node_os)
NODE_EXT_LIST_END

34
src/node_os.cc

@ -0,0 +1,34 @@
#include <node_os.h>
#include <node.h>
#include <v8.h>
#include <errno.h>
#include <unistd.h> // gethostname
namespace node {
using namespace v8;
static Handle<Value> GetHostname(const Arguments& args) {
HandleScope scope;
char s[255];
int r = gethostname(s, 255);
if (r < 0) {
return ThrowException(ErrnoException(errno, "gethostname"));
}
return scope.Close(String::New(s));
}
void OS::Initialize(v8::Handle<v8::Object> target) {
HandleScope scope;
NODE_SET_METHOD(target, "getHostname", GetHostname);
}
} // namespace node
NODE_MODULE(node_os, node::OS::Initialize);

17
src/node_os.h

@ -0,0 +1,17 @@
#ifndef node_os_h
#define node_os_h
#include <node.h>
#include <v8.h>
namespace node {
class OS {
public:
static void Initialize (v8::Handle<v8::Object> target);
};
} // namespace node
#endif // node_os_h

5
test/simple/test-os-hostname.js

@ -0,0 +1,5 @@
var common = require('../common');
var assert = require('assert');
var os = require('os');
assert.ok(os.getHostname().length > 0);

1
wscript

@ -598,6 +598,7 @@ def build(bld):
src/node_stdio.cc
src/node_timer.cc
src/node_script.cc
src/node_os.cc
"""
node.source += bld.env["PLATFORM_FILE"]
if not product_type_is_lib:

Loading…
Cancel
Save