summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xliste-verfuegbare-Versionen69
1 files changed, 39 insertions, 30 deletions
diff --git a/liste-verfuegbare-Versionen b/liste-verfuegbare-Versionen
index a87afba3..13540ed1 100755
--- a/liste-verfuegbare-Versionen
+++ b/liste-verfuegbare-Versionen
@@ -2,37 +2,46 @@
provided=$(mktemp)
-find /var/lib/pacman/sync/ -name '*.db' \
- -not -exec tar -Oxzf {} --wildcards '*/desc' \; \
- -not -exec tar -OxJf {} --wildcards '*/desc' \; \
- -not -exec tar -Oxjf {} --wildcards '*/desc' \; \
- -not -exec tar -Oxf {} --wildcards '*/desc' \; \
-2>/dev/null \
-| sed -n '
- /^%\(NAME\|VERSION\)%$/ {
- N
- s/\n/ /
- p
- }
- /^%PROVIDES%$/,/^$/ {
- /^[^%]/ p
- }
-' \
-| sed -n '
- s/^\(\S\+\)=\(\S\+\)-\(64\|32\)$/\2 \1/
- T no_provides
- p
- d
- :no_provides
- /^%NAME%/ {
- N
- s/^%NAME% \(\S\+\)\n%VERSION% \(\S\+\)-\S\+$/\2 \1/
- T
+sources=(
+ /var/lib/pacman/sync
+ /mnt/archlinux/archlinux
+ /mnt/archlinux
+)
+
+for i in "${!sources[@]}"; do
+ find "${sources["${i}"]}" -name '*.db' \
+ -exec bsdtar -Oxzf {} \; \
+ 2>/dev/null \
+ | sed -n '
+ /^%\(NAME\|VERSION\)%$/ {
+ N
+ s/\n/ /
+ p
+ }
+ /^%PROVIDES%$/,/^$/ {
+ /^[^%]/ p
+ }
+ ' \
+ | sed -n '
+ s/^\(\S\+\)=\(\S\+\)-\(64\|32\)$/\2 \1/
+ T no_provides
p
- }
-' \
-| sort -k2,2 -k1Vr,1 \
-| uniq -f1 \
+ d
+ :no_provides
+ /^%NAME%/ {
+ N
+ s/^%NAME% \(\S\+\)\n%VERSION% \(\S\+\)-\S\+$/\2 \1/
+ T
+ p
+ }
+ ' \
+ | sed '
+ s/^/'"${i}"' /
+ '
+done \
+| sort -k3,3 -k1n,1 -k2Vr,2 \
+| uniq -f2 \
+| cut -d' ' -f2,3 \
>"${provided}"
printf '%s\n' "${provided}"