summaryrefslogtreecommitdiff
path: root/package-status
diff options
context:
space:
mode:
Diffstat (limited to 'package-status')
-rwxr-xr-xpackage-status59
1 files changed, 59 insertions, 0 deletions
diff --git a/package-status b/package-status
new file mode 100755
index 0000000..a506398
--- /dev/null
+++ b/package-status
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+for s in ${HOME}/.backend/archlinuxewe/*/.SRCINFO; do
+ pkgbase_infos=$(
+ sed -n '
+ /^pkgbase = /,/^\s*$/ {
+ /^\s\+\(epoch\|pkgver\|pkgrel\|arch\) = / p
+ }
+ ' "$s"
+ )
+ epoch=$(
+ printf '%s\n' "${pkgbase_infos}" \
+ | sed '
+ s/^\s\+epoch = \(\S\+\)$/\1:/
+ t
+ d
+ '
+ )
+ pkgver=$(
+ printf '%s\n' "${pkgbase_infos}" \
+ | sed '
+ s/^\s\+pkgver = //
+ t
+ d
+ '
+ )
+ pkgrel=$(
+ printf '%s\n' "${pkgbase_infos}" \
+ | sed '
+ s/^\s\+pkgrel = //
+ t
+ d
+ '
+ )
+ sed '
+ s/^pkgname = //
+ t
+ d
+ ' "$s" \
+ | while read -r pkgname; do
+ pkgname_archs=$(
+ sed -n '
+ /^pkgname = '"${pkgname}"'/,/^\s*$/ {
+ /^\s\+arch = / p
+ }
+ ' "$s"
+ )
+ if [ -z "${pkgname_archs}" ]; then
+ printf '%s\n' "${pkgbase_infos}"
+ else
+ printf '%s\n' "${pkgname_archs}"
+ fi \
+ | sed '
+ s/^\s\+arch = /'"${pkgname}"'-'"${epoch}${pkgver}"'-'"${pkgrel}"'-/
+ t
+ d
+ '
+ done
+done