r8484: switched the sys_*() calls to the OO interface
authorAndrew Tridgell <tridge@samba.org>
Fri, 15 Jul 2005 07:45:40 +0000 (07:45 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:23:08 +0000 (13:23 -0500)
tim, do you want to do the cli_*() calls now?
(This used to be commit 9991e924e9dacec663a5d040ccfc878927fc3afa)

source4/scripting/ejs/smbcalls_sys.c
source4/scripting/libjs/provision.js

index 4dc5045ff6ba2ee53bc62764a1e9c0ed10469961..af51c815dc3781749c376edcf44c36e6f8af303d 100644 (file)
@@ -170,17 +170,31 @@ static int ejs_sys_file_save(MprVarHandle eid, int argc, char **argv)
 }
 
 
+/*
+  initialise sys ejs subsystem
+*/
+static int ejs_sys_init(MprVarHandle eid, int argc, struct MprVar **argv)
+{
+       struct MprVar obj = mprObject("sys");
+
+       mprSetCFunction(&obj, "interfaces", ejs_sys_interfaces);
+       mprSetCFunction(&obj, "hostname", ejs_sys_hostname);
+       mprSetCFunction(&obj, "nttime", ejs_sys_nttime);
+       mprSetCFunction(&obj, "gmtime", ejs_sys_gmtime);
+       mprSetCFunction(&obj, "ldaptime", ejs_sys_ldaptime);
+       mprSetStringCFunction(&obj, "unlink", ejs_sys_unlink);
+       mprSetStringCFunction(&obj, "file_load", ejs_sys_file_load);
+       mprSetStringCFunction(&obj, "file_save", ejs_sys_file_save);
+
+       mpr_Return(eid, obj);
+       return 0;
+}
+
+
 /*
   setup C functions that be called from ejs
 */
 void smb_setup_ejs_system(void)
 {
-       ejsDefineCFunction(-1, "sys_interfaces", ejs_sys_interfaces, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineCFunction(-1, "sys_hostname", ejs_sys_hostname, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineCFunction(-1, "sys_nttime", ejs_sys_nttime, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineCFunction(-1, "sys_gmtime", ejs_sys_gmtime, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineCFunction(-1, "sys_ldaptime", ejs_sys_ldaptime, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineStringCFunction(-1, "sys_unlink", ejs_sys_unlink, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineStringCFunction(-1, "sys_file_load", ejs_sys_file_load, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineStringCFunction(-1, "sys_file_save", ejs_sys_file_save, NULL, MPR_VAR_SCRIPT_HANDLE);
+       ejsDefineCFunction(-1, "sys_init", ejs_sys_init, NULL, MPR_VAR_SCRIPT_HANDLE);
 }
index 6d4e4a3bc0d8650c9bc384ab26371a30691bd902..06b6f0377922d0f0c6397a41ea665f472a15fed8 100644 (file)
@@ -7,6 +7,8 @@
 /* used to generate sequence numbers for records */
 provision_next_usn = 1;
 
+sys = sys_init();
+
 /*
   find a user or group from a list of possibilities
 */
@@ -59,7 +61,7 @@ unixName: ${UNIXNAME}
 */
 function nttime()
 {
-       return "" + sys_nttime();
+       return "" + sys.nttime();
 }
 
 /*
@@ -67,7 +69,7 @@ function nttime()
 */
 function ldaptime()
 {
-       return sys_ldaptime(sys_nttime());
+       return sys.ldaptime(sys.nttime());
 }
 
 /*
@@ -75,7 +77,7 @@ function ldaptime()
 */
 function datestring()
 {
-       var t = sys_gmtime(sys_nttime());
+       var t = sys.gmtime(sys.nttime());
        return sprintf("%04u%02u%02u%02u",
                       t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour);
 }
@@ -85,7 +87,7 @@ function datestring()
 */
 function hostip()
 {
-       var list = sys_interfaces();
+       var list = sys.interfaces();
        return list[0];
 }
 
@@ -103,7 +105,7 @@ function nextusn()
 */
 function hostname()
 {
-       var s = split(".", sys_hostname());
+       var s = split(".", sys.hostname());
        return s[0];
 }
 
@@ -123,9 +125,9 @@ function setup_ldb(ldif, dbname, subobj)
        var db = lpGet("private dir") + "/" + dbname;
        var src = lpGet("setup directory") + "/" + ldif;
 
-       sys_unlink(db);
+       sys.unlink(db);
 
-       var data = sys_file_load(src);
+       var data = sys.file_load(src);
        data = data + extra;
        data = substitute_var(data, subobj);
 
@@ -141,12 +143,12 @@ function setup_file(template, fname, subobj)
        var f = lpGet("private dir") + "/" + fname;
        var src = lpGet("setup directory") + "/" + template;
 
-       sys_unlink(f);
+       sys.unlink(f);
 
-       var data = sys_file_load(src);
+       var data = sys.file_load(src);
        data = substitute_var(data, subobj);
 
-       ok = sys_file_save(f, data);
+       ok = sys.file_save(f, data);
        assert(ok);
 }