summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-05-16 10:11:37 +0200
committerErich Eckner <git@eckner.net>2018-05-16 10:11:37 +0200
commit63b6b8defcee773cb6ca774f0d1837864490114f (patch)
tree9496ab8e9a55c6ea2c1bb7300a3528c1c1331909
parentc64ae330218ef36b41261282c314027e817b1b07 (diff)
downloadfind-foreign-packages-master.tar.xz
find-package-differences newHEADmaster
-rwxr-xr-xfind-package-differences94
1 files changed, 94 insertions, 0 deletions
diff --git a/find-package-differences b/find-package-differences
new file mode 100755
index 0000000..2991221
--- /dev/null
+++ b/find-package-differences
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+set +e
+
+trap 'rm -rf --one-file-system "${tmp_dir:?}"' EXIT
+tmp_dir=$(mktemp -d)
+
+all_archs=(
+ $(
+ curl -Ss 'https://arch.eckner.net/archlinuxewe/os/' | \
+ sed -n '
+ s,^.*href="\([^".]\+\)/".*$,\1,
+ T
+ p
+ '
+ )
+)
+
+{
+ find ~erich/'eigeneSkripte/archPackages' -mindepth 2 -maxdepth 2 -type f -name PKGBUILD | \
+ while read -r PKGBUILD; do
+ if grep -qxF '# repo: releng' "${PKGBUILD}"; then
+ repo='releng'
+ else
+ repo='archlinuxewe'
+ fi
+ for arch in $(
+ sed -n '
+ s/^arch=(\([^)]*\)).*$/\1/
+ T
+ s/['"'"'"]//g
+ p
+ ' "${PKGBUILD}"
+ ); do
+ if [ "${repo}" = 'releng' ]; then
+ case "${arch}" in
+ 'any')
+ arch='x86_64'
+ ;;
+ 'x86_64')
+ :
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ fi
+ for pkgname in $(
+ sed -n '
+ s/^pkgname=(\([^)]*\)).*$/\1/
+ t foundPkgname
+ s/^pkgname=//
+ T
+ :foundPkgname
+ s/['"'"'"]//g
+ p
+ ' "${PKGBUILD}"
+ ); do
+ printf '%s/%s/%s\n' \
+ "${arch}" \
+ "${repo}" \
+ "${pkgname}"
+ if [ "${arch}" = 'any' ] && [ "${repo}" = 'archlinuxewe' ]; then
+ printf '%s/'"${repo}/${pkgname}"'\n' \
+ "${all_archs[@]}"
+ fi
+ done
+ done
+ done | \
+ sed '
+ s/^/source: /
+ '
+ {
+ for arch in "${all_archs[@]}"; do
+ curl -Ss 'https://arch.eckner.net/archlinuxewe/os/'"${arch}"'/archlinuxewe.db.tar.gz' | \
+ tar -tz --wildcards '*/desc' | \
+ sed '
+ s,-[^-]\+-[^-]\+/desc$,,
+ s,^,'"${arch}"'/archlinuxewe/,
+ '
+ done
+ curl -Ss 'https://arch.eckner.net/archlinux32/x86_64/releng/releng.db.tar.gz' | \
+ tar -tz --wildcards '*/desc' | \
+ sed '
+ s,-[^-]\+-[^-]\+/desc$,,
+ s,^,x86_64/releng/,
+ '
+ } | \
+ sed '
+ s/^/package: /
+ '
+} | \
+ sort -k2 | \
+ uniq -uf1