Hi,

Here is a patch to allow users to pass --warn-symlinks or -W option on
the command line which allows to only warn the user that a broken
symlinks is encountered.
I also modified two indentation issues in the same file (piuparts.py).

Regards,
Carl Chenet
--- piuparts-trunk/piuparts.py	2009-04-19 19:18:11.000000000 +0200
+++ piuparts-modified/piuparts.py	2009-04-19 19:34:21.000000000 +0200
@@ -147,7 +147,8 @@
         self.no_upgrade_test = False
         self.skip_cronfiles_test = False
         self.check_broken_symlinks = True
-	self.debfoster_options = None
+        self.warn_broken_symlinks = False
+        self.debfoster_options = None
         self.ignored_files = [
             "/dev/MAKEDEV",
             "/etc/aliases",
@@ -564,7 +565,7 @@
         if settings.scriptsdir is not None:
             dest = self.relative("tmp/scripts/")
             if not os.path.exists(self.relative("tmp/scripts/")):
-              os.mkdir(dest)
+                os.mkdir(dest)
             logging.debug("Copying scriptsdir to %s" % dest)
             for file in os.listdir(settings.scriptsdir):
                 if (file.startswith("post_") or file.startswith("pre_")) and os.path.isfile(os.path.join((settings.scriptsdir), file)):
@@ -938,9 +939,13 @@
                         target = "<unknown>"
                     broken.append("%s -> %s" % (name, target))
         if broken:
-            logging.error("FAIL: Broken symlinks:\n%s" % 
-                          indent_string("\n".join(broken)))
-	    panic()
+            if settings.warn_broken_symlinks:
+                logging.error("WARN: Broken symlinks:\n%s" %
+                              indent_string("\n".join(broken)))
+            else:
+                logging.error("FAIL: Broken symlinks:\n%s" %
+                              indent_string("\n".join(broken)))
+                panic()
         else:
             logging.debug("No broken symlinks as far as we can find.")
 	    
@@ -1839,6 +1844,10 @@
                       action="store_true", default=False,
                       help="No meaning anymore.")
 
+    parser.add_option("-W", "--warn-symlinks", action="store_true",
+                      default=False,
+                      help="Warn only for broken symlinks.")
+
     parser.add_option("--debfoster-options",
                       default="-o MaxPriority=required -o UseRecommends=no -f -n apt debfoster",
 		      help="Run debfoster with different parameters (default: -o MaxPriority=required -o UseRecommends=no -f -n apt debfoster).")
@@ -1867,6 +1876,7 @@
     settings.debian_mirrors = [parse_mirror_spec(x, defaults.get_components())
                                for x in opts.mirror]
     settings.check_broken_symlinks = not opts.no_symlinks
+    settings.warn_broken_symlinks = opts.warn_symlinks
     settings.savetgz = opts.save
     settings.warn_on_others = opts.warn_on_others
     settings.debfoster_options = opts.debfoster_options.split()

Reply via email to