heimdal_build: split handwritten and generated hx509 file lists
[Samba.git] / source4 / scripting / libjs / base.js
blob790dfeb3e0c5130d9c72e505cc322e9498deb0d3
1 /*
2         base js library functions
3         Copyright Andrew Tridgell 2005
4         released under the GNU GPL version 3 or later
5 */
7 if (global["HAVE_BASE_JS"] != undefined) {
8    return;
10 HAVE_BASE_JS=1
12 /* bring the string functions into the global frame */
13 string_init(global);
16   an essential function!
18 function printf()
20         print(vsprintf(arguments));
24   substitute strings of the form ${NAME} in str, replacing
25   with substitutions from subobj
27 function substitute_var(str, subobj)
29         var list = split("${", str);
30         var i;
31         for (i=1;i<list.length;i++) {
32                 var list2 = split("}", list[i], 1);
33                 if ((list2.length < 2) && (list2[0] + "}" != list[i])) {
34                         return undefined;
35                 }
36                 var key = list2[0];
37                 var val;
38                 if (typeof(subobj[key]) == "undefined") {
39                         val = "${" + key + "}";
40                 } else if (typeof(subobj[key]) == "string") {
41                         val = subobj[key];
42                 } else {
43                         var fn = subobj[key];
44                         val = fn(key);
45                 }
46                 list2[0] = "" + val;
47                 list[i] = join("", list2);
48         }
49         return join("", list);