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()