diff options
author | Erich Eckner <git@eckner.net> | 2018-04-09 13:51:30 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2018-04-09 13:51:30 +0200 |
commit | c64ae330218ef36b41261282c314027e817b1b07 (patch) | |
tree | 73da97a446458d8a8499cbb7b2f7ee70eb3a4c90 | |
parent | f0a3850f0ad9d2d822d4ec067616729b9beb4687 (diff) | |
download | find-foreign-packages-c64ae330218ef36b41261282c314027e817b1b07.tar.xz |
find-duplicate-packages neu
-rwxr-xr-x | find-duplicate-packages | 53 |
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 + ' |