pykolab/conf pykolab/utils.py

Timotheus Pokorra pokorra at kolabsys.com
Mon Apr 13 11:15:43 CEST 2015


 pykolab/conf/__init__.py |    6 ++++++
 pykolab/utils.py         |   23 +++++++++++++++++++++++
 2 files changed, 29 insertions(+)

New commits:
commit 331cb5edc84e784b164f7e7fb67a835c606c13fa
Author: Timotheus Pokorra <tp at tbits.net>
Date:   Mon Apr 13 11:11:34 2015 +0200

    implementing --default, --yes and --quiet parameters for setup-kolab (#2598)

diff --git a/pykolab/conf/__init__.py b/pykolab/conf/__init__.py
index e05f140..faf87d9 100644
--- a/pykolab/conf/__init__.py
+++ b/pykolab/conf/__init__.py
@@ -278,6 +278,12 @@ class Conf(object):
                                     help    = _("Set the debugging " + \
                                         "verbosity. Maximum is 9, tracing " + \
                                         "protocols like LDAP, SQL and IMAP."))
+        
+        runtime_group.add_option(   "-e", "--default",
+                                    dest    = "answer_default",
+                                    action  = "store_true",
+                                    default = False,
+                                    help    = _("Use the default answer to all questions."))
 
         runtime_group.add_option(   "-l",
                                     dest    = "loglevel",
diff --git a/pykolab/utils.py b/pykolab/utils.py
index a9537dd..6838589 100644
--- a/pykolab/utils.py
+++ b/pykolab/utils.py
@@ -30,6 +30,7 @@ from pykolab import constants
 from pykolab.translate import _
 
 log = pykolab.getLogger('pykolab.utils')
+conf = pykolab.getConf()
 
 def ask_question(question, default="", password=False, confirm=False):
     """
@@ -42,6 +43,12 @@ def ask_question(question, default="", password=False, confirm=False):
 
         Usage: pykolab.utils.ask_question("What is the server?", default="localhost")
     """
+    
+    if not default == "" and not default == None and conf.cli_keywords.answer_default:
+        if not conf.cli_keywords.quiet:
+            print ("%s [%s]: " % (question, default))
+        return default
+
     if password:
         if default == "" or default == None:
             answer = getpass.getpass("%s: " % (question))
@@ -108,6 +115,14 @@ def ask_confirmation(question, default="y", all_inclusive_no=True):
         default_no = "'no'"
         default_yes = "Please type 'yes'"
 
+    if conf.cli_keywords.answer_yes or (conf.cli_keywords.answer_default and default_answer is not None):
+        if not conf.cli_keywords.quiet:
+            print ("%s [%s/%s]: " % (question,default_yes,default_no))
+        if conf.cli_keywords.answer_yes:
+            return True
+        if conf.cli_keywords.answer_default:
+            return default_answer
+
     answer = False
     while answer == False:
         answer = raw_input("%s [%s/%s]: " % (question,default_yes,default_no))
@@ -129,6 +144,11 @@ def ask_confirmation(question, default="y", all_inclusive_no=True):
                 return True
 
 def ask_menu(question, options={}, default=''):
+    if not default == '' and conf.cli_keywords.answer_default:
+        if not conf.cli_keywords.quiet:
+            print question + " [" + default + "]:"
+        return default
+
     if not default == '':
         print question + " [" + default + "]:"
     else:
@@ -280,6 +300,9 @@ def generate_password():
     return output
 
 def multiline_message(message):
+    if conf.cli_keywords.quiet:
+        return ""
+
     column_width = 80
 
     # First, replace all occurences of "\n"




More information about the commits mailing list