[Yum-devel] [PATCH 4/4] Add --assumeno which does the opposite of --assumeyes.

James Antill james at and.org
Thu Jul 14 15:45:40 UTC 2011


---
 cli.py          |   13 ++++++++++---
 docs/yum.conf.5 |    8 ++++++++
 yum/__init__.py |    5 +++++
 yum/config.py   |    1 +
 4 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/cli.py b/cli.py
index c69ec3b..7d332c1 100644
--- a/cli.py
+++ b/cli.py
@@ -25,7 +25,7 @@ import sys
 import time
 import random
 import logging
-from optparse import OptionParser,OptionGroup
+from optparse import OptionParser,OptionGroup,SUPPRESS_HELP
 import rpm
 
 from weakref import proxy as weakref
@@ -491,7 +491,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         
         # confirm with user
         if self._promptWanted():
-            if not self.userconfirm():
+            if self.conf.assumeno or not self.userconfirm():
                 self.verbose_logger.info(_('Exiting on user Command'))
                 return -1
 
@@ -1535,7 +1535,10 @@ class YumOptionParser(OptionParser):
                 
             # Handle remaining options
             if opts.assumeyes:
-                self.base.conf.assumeyes =1
+                self.base.conf.assumeyes = 1
+            if opts.assumeno:
+                self.base.conf.assumeno  = 1
+                self.base.conf.assumeyes = 0
 
             #  Instead of going cache-only for a non-root user, try to use a
             # user writable cachedir. If that fails fall back to cache-only.
@@ -1712,6 +1715,10 @@ class YumOptionParser(OptionParser):
                         help=_("verbose operation"))
         group.add_option("-y", "--assumeyes", dest="assumeyes",
                 action="store_true", help=_("answer yes for all questions"))
+        group.add_option("--assumeno", dest="assumeno",
+                action="store_true", help=_("answer no for all questions"))
+        group.add_option("--nodeps", dest="assumeno", # easter egg :)
+                action="store_true", help=SUPPRESS_HELP)
         group.add_option("--version", action="store_true", 
                 help=_("show Yum version and exit"))
         group.add_option("--installroot", help=_("set install root"), 
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 515aa73..d069f06 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -117,6 +117,14 @@ critical actions. Default is `0' (do prompt).
 Command-line option: \fB\-y\fP
 
 .IP
+\fBassumeno\fR
+Either `1' or `0'. If yum would prompt for confirmation of critical actions, 
+assume the user chose no. This is basically the same as doing "echo | yum ..."
+but is a bit more usable. Default is `0' (do prompt).
+.br
+Command-line option: \fB\--assumeno\fP
+
+.IP
 \fBalwaysprompt\fR
 Either `1' or `0'. Without this option, yum will not prompt for confirmation
 when the list of packages to be installed exactly matches those given on the
diff --git a/yum/__init__.py b/yum/__init__.py
index e9bc1f9..8951cdc 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -4729,6 +4729,8 @@ class YumBase(depsolve.Depsolve):
                     rc = False
                     if self.conf.assumeyes:
                         rc = True
+                    elif self.conf.assumeno:
+                        rc = False
                         
                     # grab the .sig/.asc for the keyurl, if it exists
                     # if it does check the signature on the key
@@ -4823,6 +4825,9 @@ class YumBase(depsolve.Depsolve):
                     rc = False
                     if self.conf.assumeyes:
                         rc = True
+                    elif self.conf.assumeno:
+                        rc = False
+
                     elif callback:
                         rc = callback({"repo": repo, "userid": info['userid'],
                                         "hexkeyid": info['hexkeyid'], "keyurl": keyurl,
diff --git a/yum/config.py b/yum/config.py
index dca13fa..dbf1784 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -664,6 +664,7 @@ class YumConf(StartupConf):
     tsflags = ListOption()
 
     assumeyes = BoolOption(False)
+    assumeno  = BoolOption(False)
     alwaysprompt = BoolOption(True)
     exactarch = BoolOption(True)
     tolerant = BoolOption(True)
-- 
1.7.5.4



More information about the Yum-devel mailing list