The branch, master has been updated
       via  52571a0333d50c58675e858774c6d5eb68a48658 (commit)
      from  792f769e969da156bbc6330118e200f2eae19d7c (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 52571a0333d50c58675e858774c6d5eb68a48658
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Thu Dec 11 18:51:28 2008 +0100

    Add interactive flag to setup/provision (also the default when no arguments 
are given).

-----------------------------------------------------------------------

Summary of changes:
 source4/setup/provision |   29 +++++++++++++++++++++++++++--
 1 files changed, 27 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/setup/provision b/source4/setup/provision
index 7bd61fc..882a92a 100755
--- a/source4/setup/provision
+++ b/source4/setup/provision
@@ -24,7 +24,8 @@
 
 import getopt
 import optparse
-import os, sys
+import os
+import sys
 
 # Find right directory when running from source tree
 sys.path.insert(0, "bin/python")
@@ -46,6 +47,7 @@ parser.add_option_group(sambaopts)
 parser.add_option_group(options.VersionOptions(parser))
 credopts = options.CredentialsOptions(parser)
 parser.add_option_group(credopts)
+parser.add_option("--interactive", help="Ask for names")
 parser.add_option("--setupdir", type="string", metavar="DIR", 
                help="directory with setup files")
 parser.add_option("--realm", type="string", metavar="REALM", help="set realm")
@@ -108,7 +110,10 @@ def message(text):
        if not opts.quiet:
                print text
 
-if opts.realm is None or opts.domain is None:
+if len(sys.argv) == 1:
+       opts.interactive = True
+
+if not opts.interactive and (opts.realm is None or opts.domain is None):
        if opts.realm is None:
                print >>sys.stderr, "No realm set"
        if opts.domain is None:
@@ -116,6 +121,26 @@ if opts.realm is None or opts.domain is None:
        parser.print_usage()
        sys.exit(1)
 
+if opts.interactive:
+       from getpass import getpass
+       import readline
+       import socket
+       def ask(prompt, default=None):
+               if default is not None:
+                       print "%s [%s]: " % (prompt,default),
+               else:
+                       print "%s: " % (prompt,),
+               return sys.stdin.readline().rstrip("\n") or default
+       opts.realm = ask("Realm", socket.gethostname().split(".", 1)[1])
+       opts.domain = ask("Domain", opts.realm)
+       opts.server_role = ask("Server Role (dc, member, standalone)", "dc")
+       for i in range(3):
+               opts.adminpass = getpass("Administrator password: ")
+               if not opts.adminpass:
+                       print >>sys.stderr, "Invalid administrator password."
+               else:
+                       break
+
 lp = sambaopts.get_loadparm()
 smbconf = lp.configfile()
 


-- 
Samba Shared Repository

Reply via email to