r10190: Do some very basic input checking when provisioning.
[jra/samba/.git] / source4 / setup / provision
index 90363fcf20848e9e53bc802114fa30edde729900..44b7ee7a4f19614fb38c5d06218ce87b73a5748d 100755 (executable)
@@ -6,8 +6,7 @@ exec smbscript "$0" ${1+"$@"}
        Released under the GNU GPL v2 or later
 */
 
-options = new Object();
-ok = GetOptions(ARGV, options, 
+options = GetOptions(ARGV,
                "POPT_AUTOHELP",
                "POPT_COMMON_SAMBA",
                "POPT_COMMON_VERSION",
@@ -27,9 +26,11 @@ ok = GetOptions(ARGV, options,
                'nogroup=s',
                'wheel=s',
                'users=s',
-               'quiet');
-if (ok == false) {
-   println("Failed to parse options: " + options.ERROR);
+               'quiet',
+                'blank');
+
+if (options == undefined) {
+   println("Failed to parse options");
    return -1;
 }
 
@@ -72,6 +73,7 @@ provision [options]
  --wheel       GROUPNAME       choose 'wheel' privileged group
  --users       GROUPNAME       choose 'users' group
  --quiet                       Be quiet
+ --blank                       do not add users or groups, just the structure
 
 You must provide at least a realm and domain
 
@@ -104,8 +106,15 @@ for (r in options) {
        subobj[key] = options[r];
 }
 
+var blank = (options["blank"] != undefined);
+
+if (!provision_validate(subobj, message)) {
+       return -1;
+}
+
+
 message("Provisioning for %s in realm %s\n", subobj.DOMAIN, subobj.REALM);
 message("Using administrator password: %s\n", subobj.ADMINPASS);
-provision(subobj, message);
+provision(subobj, message, blank, provision_default_paths(subobj));
 message("All OK\n");
 return 0;