Blame SOURCES/BZ-1357083-clean-all-add-hint-rm-rf.patch

5e9bef
commit 01a6780fd310cbf0027e98fad97aca324f952196
5e9bef
Author: Michal Domonkos <mdomonko@redhat.com>
5e9bef
Date:   Thu Mar 9 14:02:25 2017 +0100
5e9bef
5e9bef
    Add hint about rm -rf for yum clean all. BZ 1357083
5e9bef
5e9bef
diff --git a/cli.py b/cli.py
5e9bef
index 862992b..5f7c4ae 100755
5e9bef
--- a/cli.py
5e9bef
+++ b/cli.py
5e9bef
@@ -1718,6 +1718,23 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
5e9bef
         if 'all' in userlist:
5e9bef
             self.verbose_logger.log(yum.logginglevels.INFO_2,
5e9bef
                 _('Cleaning up everything'))
5e9bef
+
5e9bef
+            # Print a "maybe you want rm -rf" hint to compensate for the fact
5e9bef
+            # that yum clean all is often misunderstood.  Don't do that,
5e9bef
+            # however, if cachedir is non-default as we would have to replace
5e9bef
+            # arbitrary yum vars with * and that could produce a harmful
5e9bef
+            # command, e.g. for /mydata/$myvar we would say rm -rf /mydata/*
5e9bef
+            cachedir = self.conf.cachedir
5e9bef
+            if cachedir.startswith(('/var/cache/yum', '/var/tmp/yum-')):
5e9bef
+                # Take just the first 3 path components
5e9bef
+                rmdir = '/'.join(cachedir.split('/')[:4])
5e9bef
+                self.verbose_logger.log(
5e9bef
+                    yum.logginglevels.INFO_2,
5e9bef
+                    _('Maybe you want: rm -rf %s, to also free up space taken '
5e9bef
+                      'by orphaned data from disabled or removed repos'
5e9bef
+                      % rmdir),
5e9bef
+                )
5e9bef
+
5e9bef
             pkgcode, pkgresults = self.cleanPackages()
5e9bef
             hdrcode, hdrresults = self.cleanHeaders()
5e9bef
             xmlcode, xmlresults = self.cleanMetadata()