From 4ae2942553e0f653b3a00694a9e378151b735495 Mon Sep 17 00:00:00 2001 From: Denis Silakov Date: Mon, 17 Mar 2014 13:25:13 +0400 Subject: [PATCH] Added --leave-oldest option to urpm-repomanage --- urpm-repomanage.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/urpm-repomanage.py b/urpm-repomanage.py index b8c8d30..6137434 100755 --- a/urpm-repomanage.py +++ b/urpm-repomanage.py @@ -99,6 +99,8 @@ def parseargs(args): help=_('report obsolete packages')) parser.add_argument("-r", "--remove-old", default=False, action="store_true", help=_('remove older packages')) + parser.add_argument("-l", "--leave-oldest", default=False, action="store_true", + help=_('leave only the oldest version of every package')) parser.add_argument("-s", "--space", default=False, action="store_true", help=_('space separated output, not newline')) parser.add_argument("-k", "--keep", default=1, dest='keep', action="store", @@ -257,6 +259,11 @@ def main(args): newevrs = evrlist[keepnum:] if len(evrlist[:keepnum]) > 0: old_found = 1 + if options.leave_oldest: + for dropped in evrlist[1:]: + (e,v,r,d) = dropped + pkg = str(verfile[(n,a,e,v,r,d)]).replace("['","").replace("']","") + subprocess.call(["rm", "-f", pkg]) if options.remove_old: for dropped in evrlist[:keepnum]: (e,v,r,d) = dropped @@ -285,6 +292,11 @@ def main(args): oldevrs = evrlist[:keepnum] if len(oldevrs) > 0: old_found = 1 + if options.leave_oldest: + for dropped in evrlist[1:]: + (e,v,r,d) = dropped + pkg = str(verfile[(n,a,e,v,r,d)]).replace("['","").replace("']","") + subprocess.call(["rm", "-f", pkg]) for (e,v,r,d) in oldevrs: for pkg in verfile[(n,a,e,v,r,d)]: outputpackages.append(pkg)