summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-04-09 13:51:30 +0200
committerErich Eckner <git@eckner.net>2018-04-09 13:51:30 +0200
commitc64ae330218ef36b41261282c314027e817b1b07 (patch)
tree73da97a446458d8a8499cbb7b2f7ee70eb3a4c90
parentf0a3850f0ad9d2d822d4ec067616729b9beb4687 (diff)
downloadfind-foreign-packages-c64ae330218ef36b41261282c314027e817b1b07.tar.xz
find-duplicate-packages neu
-rwxr-xr-xfind-duplicate-packages53
1 files changed, 53 insertions, 0 deletions
diff --git a/find-duplicate-packages b/find-duplicate-packages
new file mode 100755
index 0000000..babbcac
--- /dev/null
+++ b/find-duplicate-packages
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+set +e
+
+trap 'rm -rf --one-file-system "${tmp_dir:?}"' EXIT
+tmp_dir=$(mktemp -d)
+
+for repo in \
+ 'archlinuxewe' \
+ 'community' \
+ 'community-staging' \
+ 'community-testing' \
+ 'core' \
+ 'extra' \
+ 'quarry' \
+ 'staging' \
+ 'testing'; do
+ >&2 printf '%s ...' "${repo}"
+ {
+ curl -Ss 'https://arch.eckner.net/merged/'"${repo}"'/os/x86_64/'"${repo}"'.db.tar.gz' | \
+ zcat 2>/dev/null || \
+ {
+ curl -Ss 'https://arch.eckner.net/merged/'"${repo}"'/os/x86_64/'"${repo}"'.db.tar.xz' | \
+ xzcat 2>/dev/null
+ }
+ } | \
+ tar -t --wildcards '*/desc' | \
+ sed '
+ s,-[^-]\+-[^-]\+/desc$,,
+ ' > \
+ "${tmp_dir}/${repo}.db"
+ >&2 printf ' OK\n'
+done
+
+find "${tmp_dir}" -type f \
+ -execdir grep -HF '' '{}' \; | \
+ sed '
+ s,^\./\([^/:]\+\)\.db:,\1 ,
+ y/_/-/
+ ' | \
+ sort -k2,2 | \
+ uniq -Df1 | \
+ sed -n '
+ /^archlinuxewe /{
+ :a
+ $!N
+ s/\( \S\+\)\n\(\S\+\)\1/ \2\1/
+ ta
+ P
+ D
+ }
+ d
+ '