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 | |
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)
-rw-r--r-- | source4/build/smb_build/main.pm | 1 | ||||
-rw-r--r-- | source4/scripting/config.mk | 8 | ||||
-rw-r--r-- | source4/scripting/ejs/smbscript.c | 62 |
3 files changed, 71 insertions, 0 deletions
diff --git a/source4/build/smb_build/main.pm b/source4/build/smb_build/main.pm index dd0487110a..593064c75f 100644 --- a/source4/build/smb_build/main.pm +++ b/source4/build/smb_build/main.pm @@ -62,6 +62,7 @@ sub smb_build_main($) "libcli/config.mk", "libcli/security/config.mk", "lib/com/config.mk", + "scripting/config.mk", "scripting/swig/config.mk", ); diff --git a/source4/scripting/config.mk b/source4/scripting/config.mk new file mode 100644 index 0000000000..31f7e6df9d --- /dev/null +++ b/source4/scripting/config.mk @@ -0,0 +1,8 @@ +####################### +# Start BINARY SMBSCRIPT +[BINARY::smbscript] +OBJ_FILES = \ + scripting/ejs/smbscript.o +REQUIRED_SUBSYSTEMS = EJS LIBBASIC +# End BINARY SMBSCRIPT +####################### 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; +} |