diff options
author | Tim Potter <tpot@samba.org> | 2005-05-29 00:13:10 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:17:10 -0500 |
commit | f52a74021512aace67f7ecba33ed130102f47533 (patch) | |
tree | afdfdaef7c1cb7ae29144fc47ac740901212e110 /source4/scripting/ejs | |
parent | 0befec0920f3e5ffadcdbc9e22943a679c036b53 (diff) | |
download | samba-f52a74021512aace67f7ecba33ed130102f47533.tar.gz samba-f52a74021512aace67f7ecba33ed130102f47533.tar.bz2 samba-f52a74021512aace67f7ecba33ed130102f47533.zip |
r7061: A ejs scripting client. This should allow javascript to be run in a
command line environment instead of inside the web server.
It doesn't work yet though, rather an exception is thrown when trying
to call ejsDefineStringCFunction().
(This used to be commit 3444cd5429dfef5a67d5bf7818ae08e4e8cc5ccc)
Diffstat (limited to 'source4/scripting/ejs')
-rw-r--r-- | source4/scripting/ejs/smbscript.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c new file mode 100644 index 0000000000..f1c3f0b46d --- /dev/null +++ b/source4/scripting/ejs/smbscript.c @@ -0,0 +1,62 @@ +/* + Unix SMB/CIFS implementation. + + Standalone client for ESP scripting. + + Copyright (C) Tim Potter <tpot@samba.org> 2005 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#include "web_server/ejs/ejs.h" + +void http_exception(const char *reason) +{ + fprintf(stderr, "smbscript exception: %s", reason); + exit(1); +} + +extern void ejsDefineStringCFunction(EjsId eid, const char *functionName, + MprStringCFunction fn, void *thisPtr, int flags); + +static int writeProc(MprVarHandle userHandle, int argc, char **argv) +{ + int i; + + mprAssert(argv); + for (i = 0; i < argc; i++) { + printf("%s", argv[i]); + } + return 0; +} + + int main(int argc, const char *argv[]) +{ + EjsId eid; + EjsHandle primary, alternate; + MprVar result; + char *emsg; + + ejsOpen(0, 0, 0); + eid = ejsOpenEngine(primary, alternate); + ejsDefineStringCFunction(eid, "write", writeProc, NULL, 0); + ejsEvalScript(0, "write(\"hello\n\");", &result, &emsg); + ejsClose(); + + printf("emsg = %s\n", emsg); + + return 0; +} |