2 exec smbscript
"$0" ${1+"$@"}
5 Copyright Jelmer Vernooij
2005
6 Released under the GNU GPL v2 or later
9 options
= GetOptions
(ARGV
,
12 "POPT_COMMON_VERSION",
13 "POPT_COMMON_CREDENTIALS",
20 if (options
== undefined
) {
21 println
("Failed to parse options");
25 libinclude
("base.js");
26 libinclude
("provision.js");
27 libinclude
("upgrade.js");
30 print a message
if quiet is not
set
34 if (options
["quiet"] == undefined
) {
35 print
(vsprintf
(arguments
));
47 provision [options] <libdir> <smbconf>
48 --targetdir=DIR Output to specified directory
50 --blank Do not add users or groups, just the structure
51 --realm=REALM Override realm to use
57 if (options.ARGV.length
!= 2) {
62 var
lp = loadparm_init
();
64 message
("Reading Samba3 databases and smb.conf\n");
65 var samba3
= samba3_read
(options.ARGV
[0], options.ARGV
[1]);
67 if (samba3
== undefined
) {
68 println
("Error reading Samba3 data");
74 message
("Provisioning\n");
75 var subobj
= upgrade_provision
(samba3
);
77 if (options.targetdir
!= undefined
) {
79 paths.smbconf
= sprintf
("%s/smb.conf", options.targetdir
);
80 var ldbs
= new Array
("hklm","hkcr","hku","hkcu","hkpd","hkpt","samdb","rootdse","secrets","wins");
83 paths
[n
] = sprintf
("tdb://%s/%s.ldb", options.targetdir
, n
);
85 paths.dns
= options.targetdir
+"/dns.zone";
87 paths
= provision_default_paths
(subobj
);;
90 var creds
= options.get_credentials
();
91 var system_session
= system_session
();
92 var paths
= provision_default_paths
(subobj
);
94 if (options.realm
!= undefined
) {
95 subobj.REALM
= options.realm
;
98 provision
(subobj
, message
, options.blank
, paths
, system_session
, creds
);
100 var ret
= upgrade
(subobj
,samba3
,message
,paths
, system_session
, creds
);
102 message
("Failed to import %d entries\n", ret
);
104 provision_dns
(subobj
, message
, paths
, system_session
, creds
);
109 if (options.verify
!= undefined
) {
110 message
("Verifying...\n");
111 ret
= upgrade_verify
(subobj
, samba3
,paths
,message
);