Both sides previous revisionPrevious revisionNext revision | Previous revision |
util:jsexec [2018/01/10 02:31] – Add additional Properties (stdio) and Functions digital man | util:jsexec [2022/03/06 15:19] (current) – [Module] Add Log Level section digital man |
---|
| |
<file> | <file> |
usage: jsexec [-opts] [path]module[.js] [args] | usage: jsexec [-opts] [[path/]module[.js] [args] |
| or: jsexec [-opts] -r js-expression [args] |
| or: jsexec -v |
| |
available opts: | available opts: |
| |
-c<ctrl_dir> specify path to Synchronet CTRL directory | -r<expression> run (compile and execute) JavaScript expression |
-m<bytes> set maximum heap size (default=8388608 bytes) | -c<ctrl_dir> specify path to Synchronet CTRL directory |
-s<bytes> set context stack size (default=16384 bytes) | -C do not change the current working directory (to CTRL dir) |
-S<bytes> set thread stack limit (default=262144, 0=unlimited) | -d run in background (daemonize) |
-b<limit> set branch limit (default=99999999, 0=unlimited) | -m<bytes> set maximum heap size (default=16777216 bytes) |
-y<interval> set yield interval (default=10000, 0=never) | -t<limit> set time limit (default=864000, 0=unlimited) |
-g<interval> set garbage collection interval (default=100, 0=never) | -y<interval> set yield interval (default=10000, 0=never) |
-h[hostname] use local or specified host name (instead of SCFG value) | -g<interval> set garbage collection interval (default=100, 0=never) |
-u<mask> set file creation permissions mask (in octal) | -h[hostname] use local or specified host name (instead of SCFG value) |
-L<level> set log level (default=7) | -u<mask> set file creation permissions mask (in octal) |
-E<level> set error log level threshold (default=4) | -L<level> set log level (default=6) |
-i<path_list> set load() comma-sep search path list (default="load") | -E<level> set error log level threshold (default=4) |
-f use non-buffered stream for console messages | -i<path_list> set load() comma-sep search path list (default="load") |
-a append instead of overwriting message output files | -f use non-buffered stream for console messages |
-e<filename> send error messages to file in addition to stderr | -a append instead of overwriting message output files |
-o<filename> send console messages to file instead of stdout | -A send all messages to stdout |
-n send status messages to NUL instead of stderr | -A<filename> send all messages to file instead of stdout/stderr |
-q send console messages to NUL instead of stdout | -e<filename> send error messages to file in addition to stderr |
-v display version details and exit | -o<filename> send console messages to file instead of stdout |
-x disable auto-termination on local abort signal | -S<filename> send status messages to file instead of stderr |
-l loop until intentionally terminated | -S send status messages to stdout |
-p wait for keypress (pause) on exit | -n send status messages to /dev/null instead of stderr |
-! wait for keypress (pause) on error | -q send console messages to /dev/null instead of stdout |
| -v display version details and exit |
| -x disable auto-termination on local abort signal |
| -l loop until intentionally terminated |
| -p wait for keypress (pause) on exit |
| -! wait for keypress (pause) on error |
| -D load the script into an interactive debugger |
</file> | </file> |
| |
The ''module'' argument is optional if the standard input stream (''stdin'') is not a console (''tty''), allowing for [[#shebang]] support on Unix-like operating systems. | The ''module'' argument is optional if the standard input stream (''stdin'') is not a console (''tty''), allowing for [[#shebang]] support on Unix-like operating systems. |
| |
| **Note:** |
| When JSexec starts up, it changes its **current working directory** to the Synchronet ''[[dir:ctrl]]'' directory. If you pass filenames on the command-line to a module, the paths must be full/absolute paths or relative to the Synchronet ''[[dir:ctrl]]'' directory. |
| |
| ==== Log Level ==== |
| |
| The log severity/output verbosity level can be controlled via the ''[[dir:ctrl]]/[[config:jsexec.ini]]'' file or specified using the ''-L'' command-line option. The value following ''-L'' can either be the numeric log level (''7'' being the lowest-severity / most verbose output) or a [[http://wiki.synchro.net/config:ini_files#enumerated_values|word]] describing the log level (e.g. ''-Ldebug'' for debug-level logput). |
===== Additional Properties ===== | ===== Additional Properties ===== |
| |
JSexec includes an instance of a special User Interface class called ''uifc''. | JSexec includes an instance of a special User Interface class called ''uifc''. |
| |
FIXME | See the [[ref:UIFC]] reference page for more details. |
| |
===== shebang ===== | ===== shebang ===== |
This allows JSexec scripts to be executed easily via [[:howto:apache|CGI]] as well as other command-line conveniences on Unix-like operating systems. | This allows JSexec scripts to be executed easily via [[:howto:apache|CGI]] as well as other command-line conveniences on Unix-like operating systems. |
| |
| ===== Output ===== |
| |
| JSexec supports multiple output methods and streams: |
| |
| - **Error** (default stream: ''stderr'')\\ JS ''log()'' messages with log-levels of ''LOG_ERR'' or lower |
| - **Status** (default stream: ''stderr'')\\ JS ''log()'' messages with log-levels higher than ''LOG_ERR''\\ JSexec startup/compile/shutdown progress messages |
| - **Console** (default stream: ''stdout'')\\ JS ''write()'' ''writeln()'' ''printf()'' ''alert()'' and ''prompt()'' messages |
| |
| ==== syslog ==== |
| |
| When JSexec is executed on *nix operating systems with the ''-d'' (Daemonize) option, all JS ''log()'' messages are directed to ''syslog''. |
| |
| ==== Suppression ==== |
| * **Status** output is suppressed by default when JSexec is run without a controlling TTY. This behavior can be overridden with the ''-A'' and ''-S'' command-line options. |
| * **Status** output can be manually suppressed with the ''-n'' (Null) command-line option. |
| * **Console** output can be suppressed with the ''-q'' (Quiet) command-line option. |
| |
| ==== Redirection ==== |
| * The output streams may be redirected to specific filenames via command-line options. |
| * **Error** output can be forked to both ''stderr'' and a specified filename via the ''-e'' command-line option. |
===== See Also ===== | ===== See Also ===== |
* [[custom:javascript|JavaScript]] | * [[custom:javascript|JavaScript]] |
| * [[:config:jsexec.ini]] |
* [[:howto:apache|How To Use Apache HTTP Server with Synchronet]] | * [[:howto:apache|How To Use Apache HTTP Server with Synchronet]] |
* [[:util:|Utilities]] | * [[:util:|Utilities]] |
| |
{{tag>javascript jsexec customization}} | {{tag>javascript jsexec customization}} |