]> git.pld-linux.org Git - projects/pld-ftp-admin.git/commitdiff
script to nuke items from th-archive that are already in snap
authorElan Ruusamäe <glen@pld-linux.org>
Sun, 2 Oct 2016 19:50:38 +0000 (22:50 +0300)
committerElan Ruusamäe <glen@pld-linux.org>
Sun, 2 Oct 2016 19:54:24 +0000 (22:54 +0300)
objective for such cleanup is to decrease number of packages in th-archive:
1. faster loading of index
2. poldek hardcoded 64k limit of packages per repo

before:

source packages in th-archive: 20120

estimated[1] packages to remove:
2012: 3514 packages
2013: 3996 packages
2014: 4452 packages
2015: 3279 packages

after:

packages removed from th-archive that were present in snap:
2012: 3520 packages
2013: 2493 packages
2014: 2569 packages
2015: 2443 packages

source packages in th-archive: 9451

[1] does not account that package can be also in earlier snap

wwwbin/archive-dupe-cleanup.sh [new file with mode: 0755]

diff --git a/wwwbin/archive-dupe-cleanup.sh b/wwwbin/archive-dupe-cleanup.sh
new file mode 100755 (executable)
index 0000000..e00ad7a
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+archive_tree=.archive/PLD
+other_tree=$1
+ftp_dir=~ftp/pld/dists/th
+
+die() {
+       echo >&2 "$*"
+       exit 1
+}
+
+
+test -n "$other_tree" || die 'specify other tree, ex: 2015/PLD'
+
+archive_dir=$ftp_dir/$archive_tree/SRPMS/.metadata
+other_dir=$ftp_dir/$other_tree/SRPMS/.metadata
+
+test -d "$archive_dir" || die '$archive_dir not a dir'
+test -d "$other_dir" || die '$other_dir not a dir'
+
+match_pkgs() {
+       for f in $archive_dir/*.info; do
+               fn=${f##*/}
+               if [ -f "$other_dir/$fn" ]; then
+                       echo $fn
+               fi
+       done
+}
+
+remove_pkgs=$(match_pkgs)
+test -n "$remove_pkgs" || die "nothing matched"
+c=$(echo "$remove_pkgs" | wc -l)
+echo >&2 "$c packages to remove from $archive_dir. ctrl-c to abort"
+read a
+
+echo >&2 pfa-rmpkg $archive_tree $remove_pkgs
+pfa-rmpkg $archive_tree $remove_pkgs
This page took 0.126992 seconds and 4 git commands to generate.