Permalink
Browse files

Add node-repl

  • Loading branch information...
1 parent 1910c11 commit 8c41adb6288a3a4e7dd31c95d02d1828d2fafbcb @ry ry committed Sep 11, 2009
Showing with 44 additions and 0 deletions.
  1. +43 −0 node-repl
  2. +1 −0 wscript
View
@@ -0,0 +1,43 @@
+#!/usr/bin/env node
+
+node.stdio.open();
+
+var buffered_cmd = '';
+
+function prompt () {
+ node.stdio.write(buffered_cmd.length ? '... ' : "\nnode> ");
+}
+
+node.stdio.write("Welcome to the Node.js REPL.\n");
+node.stdio.write("Enter ECMAScript at the prompt.\n");
+node.stdio.write("Type Control-D to exit.\n");
+node.stdio.write("For more information, see http://tinyclouds.org/node\n");
+
+prompt();
+
+var trimmer = /^\s*(.+)\s*$/m;
+
+node.stdio.addListener("data", function (cmd) {
+ var matches = trimmer.exec(cmd);
+
+ if (matches && matches.length == 2) {
+ cmd = matches[1];
+ try {
+ buffered_cmd += cmd;
+ try {
+ node.stdio.write(JSON.stringify(eval(buffered_cmd)) + "\n");
+ buffered_cmd = '';
+ } catch (e) {
+ if (!(e instanceof SyntaxError))
+ throw e;
+ }
+ } catch (e) {
+ node.stdio.writeError('caught an exception: ' + e + '\n');
+ buffered_cmd = '';
+ }
+ }
+
+ prompt();
+});
+
+// vim:ft=javascript
View
@@ -348,3 +348,4 @@ def build(bld):
src/net.h
""");
bld.install_files('${PREFIX}/share/man/man1/', 'doc/node.1');
+ bld.install_files('${PREFIX}/bin/', 'node-repl', chmod=0755);

0 comments on commit 8c41adb

Please sign in to comment.