summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2005-05-29 00:13:10 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:17:10 -0500
commitf52a74021512aace67f7ecba33ed130102f47533 (patch)
treeafdfdaef7c1cb7ae29144fc47ac740901212e110 /source4/scripting
parent0befec0920f3e5ffadcdbc9e22943a679c036b53 (diff)
downloadsamba-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')
-rw-r--r--source4/scripting/config.mk8
-rw-r--r--source4/scripting/ejs/smbscript.c62
2 files changed, 70 insertions, 0 deletions
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;
+}