зеркало из https://github.com/mozilla/gecko-dev.git
Bug 828648 - Add system() function to JS shell, r=billm
This commit is contained in:
Родитель
e09bb5012c
Коммит
2c5720bcc2
|
@ -3343,6 +3343,30 @@ Snarf(JSContext *cx, unsigned argc, jsval *vp)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static JSBool
|
||||||
|
System(JSContext *cx, unsigned argc, jsval *vp)
|
||||||
|
{
|
||||||
|
JSString *str;
|
||||||
|
|
||||||
|
if (argc != 1) {
|
||||||
|
JS_ReportErrorNumber(cx, my_GetErrorMessage, NULL, JSSMSG_INVALID_ARGS,
|
||||||
|
"system");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
str = JS_ValueToString(cx, JS_ARGV(cx, vp)[0]);
|
||||||
|
if (!str)
|
||||||
|
return false;
|
||||||
|
JSAutoByteString command(cx, str);
|
||||||
|
if (!command)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int result = system(command.ptr());
|
||||||
|
|
||||||
|
*vp = Int32Value(result);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
DecompileFunctionSomehow(JSContext *cx, unsigned argc, Value *vp,
|
DecompileFunctionSomehow(JSContext *cx, unsigned argc, Value *vp,
|
||||||
JSString *(*decompiler)(JSContext *, JSFunction *, unsigned))
|
JSString *(*decompiler)(JSContext *, JSFunction *, unsigned))
|
||||||
|
@ -3838,14 +3862,18 @@ static JSFunctionSpecWithHelp shell_functions[] = {
|
||||||
" Sleep for dt seconds."),
|
" Sleep for dt seconds."),
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
JS_FN_HELP("snarf", Snarf, 0, 0,
|
JS_FN_HELP("snarf", Snarf, 1, 0,
|
||||||
"snarf(filename)",
|
"snarf(filename)",
|
||||||
" Read filename into returned string."),
|
" Read filename into returned string."),
|
||||||
|
|
||||||
JS_FN_HELP("read", Snarf, 0, 0,
|
JS_FN_HELP("read", Snarf, 1, 0,
|
||||||
"read(filename)",
|
"read(filename)",
|
||||||
" Synonym for snarf."),
|
" Synonym for snarf."),
|
||||||
|
|
||||||
|
JS_FN_HELP("system", System, 1, 0,
|
||||||
|
"system(command)",
|
||||||
|
" Execute command on the current host, returning result code."),
|
||||||
|
|
||||||
JS_FN_HELP("compile", Compile, 1, 0,
|
JS_FN_HELP("compile", Compile, 1, 0,
|
||||||
"compile(code)",
|
"compile(code)",
|
||||||
" Compiles a string to bytecode, potentially throwing."),
|
" Compiles a string to bytecode, potentially throwing."),
|
||||||
|
|
Загрузка…
Ссылка в новой задаче