svn commit: samba r7061 - in branches/SAMBA_4_0/source: build/smb_build scripting scripting/ejs

tpot at samba.org tpot at samba.org
Sun May 29 00:13:10 GMT 2005


Author: tpot
Date: 2005-05-29 00:13:10 +0000 (Sun, 29 May 2005)
New Revision: 7061

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7061

Log:
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().

Added:
   branches/SAMBA_4_0/source/scripting/config.mk
   branches/SAMBA_4_0/source/scripting/ejs/
   branches/SAMBA_4_0/source/scripting/ejs/smbscript.c
Modified:
   branches/SAMBA_4_0/source/build/smb_build/main.pm


Changeset:
Modified: branches/SAMBA_4_0/source/build/smb_build/main.pm
===================================================================
--- branches/SAMBA_4_0/source/build/smb_build/main.pm	2005-05-29 00:09:20 UTC (rev 7060)
+++ branches/SAMBA_4_0/source/build/smb_build/main.pm	2005-05-29 00:13:10 UTC (rev 7061)
@@ -62,6 +62,7 @@
 		"libcli/config.mk",
 		"libcli/security/config.mk",
 		"lib/com/config.mk",
+		"scripting/config.mk",
 		"scripting/swig/config.mk",
 	);
 

Added: branches/SAMBA_4_0/source/scripting/config.mk
===================================================================
--- branches/SAMBA_4_0/source/scripting/config.mk	2005-05-29 00:09:20 UTC (rev 7060)
+++ branches/SAMBA_4_0/source/scripting/config.mk	2005-05-29 00:13:10 UTC (rev 7061)
@@ -0,0 +1,8 @@
+#######################
+# Start BINARY SMBSCRIPT
+[BINARY::smbscript]
+OBJ_FILES = \
+		scripting/ejs/smbscript.o
+REQUIRED_SUBSYSTEMS = EJS LIBBASIC
+# End BINARY SMBSCRIPT
+#######################

Added: branches/SAMBA_4_0/source/scripting/ejs/smbscript.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbscript.c	2005-05-29 00:09:20 UTC (rev 7060)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbscript.c	2005-05-29 00:13:10 UTC (rev 7061)
@@ -0,0 +1,62 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Standalone client for ESP scripting.
+
+   Copyright (C) Tim Potter <tpot at 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;
+}



More information about the samba-cvs mailing list