EJS(1) User Commands EJS(1)
NAME
ejs - Interpreted object-oriented scripting language (Javascript)
shell.
SYNOPSIS
ejs [--class className] [--cmd literalScript] [--debug] [--lang
[ecma|plus|fixed]] [--files "files..."] [--log logSpec] [--method
methodName] [--nodebug] [--optimize level] [--search ejsPath] [--stan-
dard] [--stats] [--strict] [--use 'module, ...'] [--version] [--warn
level] file [arguments ...]
DESCRIPTION
The ejs command is an Ejscript command shell that can interpret and run
JavaScript programs.
Ejscript is an enhanced implementation of the JavaScript language for
use in embedded applications such as web servers, embedded devices and
mobile phones. It is especially well suited for Server-Side JavaScript
web applications.
INVOCATION
The ejs command can be used as a shell to interactively interpret com-
mands typed at the console or to run script files. When invoked with no
files on the command line, ejs runs in interactive mode. In interac-
tive mode, ejs reads input from the console and parses and executes
script code as it is entered. In this mode, ejs command will read input
until it has a complete block of code and will then execute the block.
The last result value computed will be echoed to the console. For exam-
ple:
ejs-0> if (true) {
ejs-2> print("Hello World");
ejs-2> }
Hello World
ejs-0>
Note: the input prompt includes a level of nest indicator starting at
zero and increasing upward as commands nest. This is a hint as to when
you have closed sufficient braces for ejs to execute your command. As
this is an internal compiler nest value, it will sometimes increment
more than 1 for each brace.
If ejs is invoked with a file name on the command line, that file will
be read and its statements executed. One file may be supplied and the
arguments after it will be passed into the script as command line argu-
ments. For example:
ejs myscript.es arg1 arg2 arg3
The given file may be either a script file or it may be a previously
compiled Ejscript module with a .mod extension.
If you require more script files to be parsed, use the --files "files
..." switch to supply extra scripts. These will be parsed in order, but
after the primary script on the command line.
The ejs command can also invoke a specific static method on startup.
If either the --class or --method switches are supplied, then ejs will
run the requested static method after the input file script statements
have been executed.
COMPLIANCE
Ejscript is fully compliant with the JavaScript (ECMA-262 3.X) stan-
dards, but it also offers a set of enhancements and fixes designed to
improve the language and correct some longstanding JavaScript design
issues. Use of these enhancements and fixes is optional and controlled
via opt-in configuration switches and script pragmas.
The ec compiler supports three language compliance modes:
* ecma for strict ECMAScript compliance.
* plus for close compliance plus compatible Ejscript enhancements.
* fixed for close compliance, plus compatible Ejscript enhance-
ments and breaking fixes.
When Ejscript is built, the default compliance mode is defined. By
default, this is plus mode. The fixed mode corrects several issues
with Javascript that remain in the language due to browser compatibil-
ity requirements. Ejscript, by targeting non-browser environments, can
rectify these issues without impact to legacy applications. These
changes are:
* Assignments to non-existent properties inside functions, will
create local variables rather than global variables.
* Multiple declarations of the same variable in the same scope are
not permitted.
* The == and != operators will perform like their more rigorous
conterparts === and !===.
OPTIONS
--class className
Use the given className when searching for the startup method
specified via --method or "main" by default.
--cmd literalCommand
Evaluate a literal command string.
--debug
Run in debug mode and generate symbolic stack backtraces if
required.
--files "files ..."
Specifies an extra set of files to be compiled. The ejs command
normally takes just one script file on the command line. The
--files switch allows extra script to be compiled after the pri-
mary script, but before the scripts are run.
--log logName[:logLevel]
Specify a file to log internal execution messages. Ejs will log
execution related trace to the log file. The log level specifies
the desired verbosity of output. Level 0 is the least verbose
and level 9 is the most. Level 2 will include trace of each
source statement and assembler instruction executed (provided
--nodebug is not specifiec).
--lang [ecma|plus|fixed]
Set the language compliance mode. Use ecma for strict ECMAScript
Edition 3 compliance. Use plus for close ECMAScript compliance
plus Ejscript enhancements. Select fixed mode for ECMAScript
features plus enhancements and some compatibility breaking
fixes.
---method methodName
Set the startup method name. Defaults to "main" if a --className
is specified and --method is not.
--nodebug
Run the script without debug information. This will result in
exceptions not having symbolic stack backtraces.
--optimize level
Set the code optimization level. Level values must be between 0
(least) and 9 (most). Default is level 9.
--search ejsPath
Set the module search path. The module search path is a set of
directories that the ejs command will use when locating and
loading Ejscript modules. The search path will always have some
system directories appended to the end. These include paths
specified via the EJSPATH environment variable and key system
directories such as the Ejscript system module directory and the
directory containing the ejs command.
The search path value is similar in format to the system PATH
variable format. On windows, path segments are separated by ";"
and on Linux, Unix, FreeBSD and MAC, the path segments are sepa-
rated by ":" delimiters.
Given a module named "a.b.c" in a script, ejs will use the fol-
lowing search strategy to locate the module:
1. Search for a module file named "a.b.c.mod"
2. Search for a module file named "a/b/c.mod"
3. Search for a module file named "a.b.c.mod" in the search path
4. Search for a module file named c.mod in the search path
--standard
Run scripts in standard mode. Ejscript supports two parsing
modes: strict and standard. Standard mode does not require vari-
ables be declared and typed before use.
--stats
Print various statistics on exit.
--strict
Run scripts in standard mode. Ejscript supports two parsing
modes: strict and standard. Strict mode requires that all vari-
ables be declared and typed.
--use 'module, ...'
List of modules to preload before compiling input files.
--warn level
Set the compiler warning verbosity level. Level values must be
between 0 (least verbose) and 9 (most). Default is 0.
--version
Print the ejs command version and exit.
REPORTING BUGS
Report bugs to dev@embedthis.com.
COPYRIGHT
Copyright (C) 2004-2012 Embedthis Software. Ejscript is a trademark of
Embedthis Software.
SEE ALSO
ejsc, ejsgen, ejsmod, ejsvm
ejs March 2012 EJS(1)