From 7ac16136fa7df1b87dd31332966409a28f860ad3 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 23 Nov 2020 09:55:07 +0100 Subject: switch from "dnf repomanage" to a home brew script --- cleanoldrpm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 cleanoldrpm (limited to 'cleanoldrpm') diff --git a/cleanoldrpm b/cleanoldrpm new file mode 100755 index 0000000..17d659c --- /dev/null +++ b/cleanoldrpm @@ -0,0 +1,50 @@ +#!/usr/bin/php + 3, + 'redis' => 1, + 'composer' => 1, +]; +if (isset($_SERVER['argv'][1])) { + $keep = (int)$_SERVER['argv'][1]; +} +if (!$keep) { + printf("\nusage %s number [ trash_path ]\n\n", $_SERVER['argv'][0]); + die("Number to keep is missing\n"); +} +if (isset($_SERVER['argv'][2])) { + $dest = $_SERVER['argv'][2]; + if (!is_dir($dest)) { + die("$dest is not a directory\n"); + } +} + +$rpms = []; +foreach (glob("*.rpm") as $name) { + $info = rpminfo($name); + $i = $info['Name']; + if (isset($multi[$i])) { + $i .= "/" . substr($info['Version'], 0, $multi[$i]); + } + $rpms[$i][$info['Version']] = $name; +} + +foreach($rpms as $rpm) { + if (count($rpm) > $keep) { + uksort($rpm, "rpmvercmp"); + $i = count($rpm) - $keep; + while ($i--) { + $name = array_shift($rpm); + echo "\t$name\n"; + if ($dest) rename($name, "$dest/$name"); + } + } +} -- cgit