typedef struct {
+ uint8_t disassemble;
+ uint8_t interactive;
+ uint8_t module;
+ uint8_t quiet;
+ uint8_t sandbox;
+ uint8_t version;
+
char *file;
size_t n_paths;
char **paths;
- nxt_int_t version;
- nxt_int_t disassemble;
- nxt_int_t interactive;
- nxt_int_t sandbox;
- nxt_int_t quiet;
- nxt_int_t module;
} njs_opts_t;
"\n"
"Options:\n"
" -d print disassembled code.\n"
+ " -p set path prefix for modules.\n"
" -q disable interactive introduction prompt.\n"
" -s sandbox mode.\n"
" -t script|module source code type (script is default).\n"
- " -p set path prefix for modules.\n"
" -v print njs version and exit.\n"
" <filename> | - run code from a file or stdin.\n";
opts->disassemble = 1;
break;
+ case 'p':
+ if (++i < argc) {
+ opts->n_paths++;
+ paths = realloc(opts->paths, opts->n_paths * sizeof(char *));
+ if (paths == NULL) {
+ nxt_error("failed to add path\n");
+ return NXT_ERROR;
+ }
+
+ opts->paths = paths;
+ opts->paths[opts->n_paths - 1] = argv[i];
+ break;
+ }
+
+ nxt_error("option \"-p\" requires directory name\n");
+ return NXT_ERROR;
+
case 'q':
opts->quiet = 1;
break;
nxt_error("option \"-t\" requires source type\n");
return NXT_ERROR;
-
- case 'p':
- if (++i < argc) {
- opts->n_paths++;
- paths = realloc(opts->paths, opts->n_paths * sizeof(char *));
- if (paths == NULL) {
- nxt_error("failed to add path\n");
- return NXT_ERROR;
- }
-
- opts->paths = paths;
- opts->paths[opts->n_paths - 1] = argv[i];
- break;
- }
-
- nxt_error("option \"-p\" requires directory name\n");
- return NXT_ERROR;
-
case 'v':
case 'V':
opts->version = 1;
njs_run "-h" "Interactive njs shell.\r\n\r\nOptions:"
-# version
-
-njs_run "-v" "\\d+\.\\d+\.\\d+"
-
# disassemble
njs_test {
"00000 TRY START*\r\n*TRY RETURN*STOP*\r\n\r\nundefined"}
} "-d"
-# sandboxing
-
-njs_test {
- {"var fs = require('fs')\r\n"
- "Error: Cannot find module \"fs\"\r\n"}
-} "-s"
-
-njs_test {
- {"var crypto = require('crypto')\r\n"
- "undefined\r\n"}
-} "-s"
-
-# source type
-
-njs_test {
- {"this\r\n"
- "this\r\nundefined"}
- {"(() => this)()\r\n"
- "(() => this)()\r\nundefined"}
-} "-t module"
-
-njs_test {
- {"this.NaN\r\n"
- "this.NaN\r\nNaN"}
-} "-t script"
-
# modules
njs_test {
njs_run "-p njs/test/module/libs/ -d ./njs/test/module/normal.js" \
"passed!"
+
+# sandboxing
+
+njs_test {
+ {"var fs = require('fs')\r\n"
+ "Error: Cannot find module \"fs\"\r\n"}
+} "-s"
+
+njs_test {
+ {"var crypto = require('crypto')\r\n"
+ "undefined\r\n"}
+} "-s"
+
+
+# source type
+
+njs_test {
+ {"this\r\n"
+ "this\r\nundefined"}
+ {"(() => this)()\r\n"
+ "(() => this)()\r\nundefined"}
+} "-t module"
+
+njs_test {
+ {"this.NaN\r\n"
+ "this.NaN\r\nNaN"}
+} "-t script"
+
+
+# version
+
+njs_run "-v" "\\d+\.\\d+\.\\d+"
+