mirror of
https://github.com/samba-team/samba.git
synced 2025-01-07 17:18:11 +03:00
3a76da248d
(This used to be commit 657a87fecc
)
51 lines
986 B
JavaScript
51 lines
986 B
JavaScript
/*
|
|
base js library functions
|
|
Copyright Andrew Tridgell 2005
|
|
released under the GNU GPL version 3 or later
|
|
*/
|
|
|
|
if (global["HAVE_BASE_JS"] != undefined) {
|
|
return;
|
|
}
|
|
HAVE_BASE_JS=1
|
|
|
|
/* bring the string functions into the global frame */
|
|
string_init(global);
|
|
|
|
/*
|
|
an essential function!
|
|
*/
|
|
function printf()
|
|
{
|
|
print(vsprintf(arguments));
|
|
}
|
|
|
|
/*
|
|
substitute strings of the form ${NAME} in str, replacing
|
|
with substitutions from subobj
|
|
*/
|
|
function substitute_var(str, subobj)
|
|
{
|
|
var list = split("${", str);
|
|
var i;
|
|
for (i=1;i<list.length;i++) {
|
|
var list2 = split("}", list[i], 1);
|
|
if ((list2.length < 2) && (list2[0] + "}" != list[i])) {
|
|
return undefined;
|
|
}
|
|
var key = list2[0];
|
|
var val;
|
|
if (typeof(subobj[key]) == "undefined") {
|
|
val = "${" + key + "}";
|
|
} else if (typeof(subobj[key]) == "string") {
|
|
val = subobj[key];
|
|
} else {
|
|
var fn = subobj[key];
|
|
val = fn(key);
|
|
}
|
|
list2[0] = "" + val;
|
|
list[i] = join("", list2);
|
|
}
|
|
return join("", list);
|
|
}
|