447e5ee4f92d552f3e50b3e85bb79aeabe9db7a3
[sfrench/samba-autobuild/.git] / source4 / setup / upgrade
1 #!/bin/sh
2 exec smbscript "$0" ${1+"$@"}
3 /*
4         Upgrade from Samba3
5         Copyright Jelmer Vernooij 2005
6         Released under the GNU GPL v2 or later
7 */
8
9 options = GetOptions(ARGV,
10                 "POPT_AUTOHELP",
11                 "POPT_COMMON_SAMBA",
12                 "POPT_COMMON_VERSION",
13                 'quiet', 'blank');
14
15 if (options == undefined) {
16    println("Failed to parse options");
17    return -1;
18 }
19
20 libinclude("base.js");
21 libinclude("provision.js");
22 libinclude("upgrade.js");
23
24 /*
25   print a message if quiet is not set
26 */
27 function message() 
28 {
29         if (options["quiet"] == undefined) {
30                 print(vsprintf(arguments));
31         }
32 }
33
34 /*
35  show some help
36 */
37 function ShowHelp()
38 {
39         print("
40 Samba4 import tool
41
42 provision [options] <libdir> <smbconf>
43  --quiet                        Be quiet
44  --blank                        do not add users or groups, just the structure
45
46 You must provide at least a realm and domain
47
48 ");
49         exit(1);
50 }
51
52 if (options.ARGV.length != 2) {
53         ShowHelp();
54         exit(1);
55 }
56
57 message("Reading Samba3 databases and smb.conf\n");
58 var samba3 = samba3_read(options.ARGV[0], options.ARGV[1]);
59
60 if (samba3 == undefined) {
61         println("Error reading Samba3 data");
62         exit(1);
63 }
64
65 message("Writing smb.conf\n");
66 // FIXME
67
68 message("Provisioning\n");
69 var subobj = upgrade_provision(samba3);
70 provision(subobj, message, blank);
71
72 message("Importing account policies\n");
73 // FIXME
74
75 message("Importing users\n");
76 // FIXME
77
78 message("Importing groups\n");
79 // FIXME
80
81 message("Importing WINS data\n");
82 // FIXME
83
84 message("All OK\n");
85 return 0;