From 7129e5491a52e5728bfe861cd051daf2d01bc90e Mon Sep 17 00:00:00 2001 From: "igor%mir2.org" Date: Sun, 26 Jan 2003 18:01:43 +0000 Subject: [PATCH] Documentation about runCommand in shell --- js/rhino/docs/rhino15R4.html | 7 +- js/rhino/docs/shell.html | 139 +++++++++++++++++++++++++++++------ 2 files changed, 121 insertions(+), 25 deletions(-) diff --git a/js/rhino/docs/rhino15R4.html b/js/rhino/docs/rhino15R4.html index 7d991edd4f80..3ca3e9507f00 100644 --- a/js/rhino/docs/rhino15R4.html +++ b/js/rhino/docs/rhino15R4.html @@ -7,9 +7,9 @@

-Change Log for Significant Rhino Changes

+Rhino Change Log -This is a log of significant changes since the release of Rhino 1.5 Release 3. +This is a log of changes since the release of Rhino 1.5 Release 3.

Rhino debug API changes

@@ -52,6 +52,9 @@ var obj = new fooJar.Foo(1, 2, 3); obj.someMethod(); +

Shell function to run external processes.

+A new runCommand function is added to Rhino Shell to run external priocesses. For details, see JavaDoc for org.mozilla.javascript.tools.shell.Global#runCommand. +

Resolved Bugzilla reports

The following Rhino reports in Bugzilla where resolved for Rhino 1.5 Release 4. diff --git a/js/rhino/docs/shell.html b/js/rhino/docs/shell.html index 211ee7e45204..4b40c7ceb57d 100644 --- a/js/rhino/docs/shell.html +++ b/js/rhino/docs/shell.html @@ -57,6 +57,11 @@ defineClass(className) argument className. Uses ScriptableObject.defineClass() to define the extension. +

+deserialize(filename)

+ +
Restore from the specified file an object previously written by a call to serialize.
+

load([filename, ...])

@@ -76,6 +81,26 @@ print([expr ...])
Evaluate and print expressions. Evaluates each expression, converts the result to a string, and prints it.
+

+runCommand(commandName, [arg, ...] [options])

+ +
Execute the specified command with the given argument and options +as a separate process and return the exit status of the process. For details, see JavaDoc for org.mozilla.javascript.tools.shell.Global#runCommand.
+ +

+serialize(object, filename)

+
Serialize the given object to the specified file.
+ +

+spawn(functionOrScript)

+ +
Run the given function or script in a different thread.
+ +

+sync(function)

+ +
creates a synchronized function (in the sense of a Java synchronized method) from an existing function. The new function synchronizes on the this object of its invocation.
+

quit()

@@ -93,35 +118,103 @@ respectively.

Example

+ +

Invocation

Here the shell is invoked three times from the command line. (The system command prompt is shown as $.) The first invocation executes a script specified on the command line itself. The next invocation has no arguments, so the shell goes into interactive mode, reading and evaluating each line as it is typed in. Finally, the last invocation executes a script from a file and accesses arguments to the script itself. -

$ java org.mozilla.javascript.tools.shell.Main -e print('hi') -

hi -

$ java org.mozilla.javascript.tools.shell.Main -

js> print('hi') -
hi -
js> 6*7 -
42 -
js> function f() { -
        return a; -
} -
js> var a = 34; -
js> f() -
34 -
js> quit() -

$ cat echo.js -
for (i in arguments) { -
        print(arguments[i]) -
} -
$ java org.mozilla.javascript.tools.shell.Main echo.js foo bar -

foo -
bar -

$ -

+

+$ java org.mozilla.javascript.tools.shell.Main -e print('hi')
+hi
+$ java org.mozilla.javascript.tools.shell.Main
+js> print('hi')
+hi
+js> 6*7
+42
+js> function f() {
+	return a;
+}
+js> var a = 34;
+js> f()
+34
+js> quit()
+$ cat echo.js
+for (i in arguments) {
+	print(arguments[i])
+}
+$ java org.mozilla.javascript.tools.shell.Main echo.js foo bar
+foo
+bar
+$
+
+ +

spawn and sync

+The following example creates 2 threads via spawn and uses sync to create a synchronized version of the function test. + +
+js> function test(x) {
+	print("entry");
+	java.lang.Thread.sleep(x*1000);
+	print("exit");
+}
+js> var o = { f : sync(test) };
+js> spawn(function() {o.f(5);});
+Thread[Thread-0,5,main]
+entry
+js> spawn(function() {o.f(5);});
+Thread[Thread-1,5,main]
+js>
+exit
+entry
+exit
+
+ +

runCommand

+Here is few examples of invoking runCommand under Linux. +
+js> runCommand('date')
+Thu Jan 23 16:49:36 CET 2003
+0
+// Using input option to provide process input
+js> runCommand("sort", {input: "c\na\nb"})
+a
+b
+c
+0
+js> // Demo of output and err options
+js> var opt={input: "c\na\nb", output: 'Sort Output:\n'}
+js> runCommand("sort", opt)
+0
+js> print(opt.output)
+Sort Output:
+a
+b
+c
+js> var opt={input: "c\na\nb", output: 'Sort Output:\n', err: ''}
+js> runCommand("sort", "--bad-arg", opt)
+2
+js> print(opt.err)
+/bin/sort: unrecognized option `--bad-arg'
+Try `/bin/sort --help' for more information.
+
+js> runCommand("bad_command", "--bad-arg", opt)
+js: "", line 18: uncaught JavaScript exception: java.io.IOException: bad_command: not found
+js> // Passing explicit environment to the system shell
+js> runCommand("sh", "-c", "echo $env1 $env2", { env: {env1: 100, env2: 200}})
+100 200
+0
+js> // Use args option to provide additional command arguments
+js> var arg_array = [1, 2, 3, 4];
+js> runCommand("echo", { args: arg_array})
+1 2 3 4
+0
+
+ + +

back to top