summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xunpack-debuginfo.sh23
1 files changed, 18 insertions, 5 deletions
diff --git a/unpack-debuginfo.sh b/unpack-debuginfo.sh
index b31a179..7152133 100755
--- a/unpack-debuginfo.sh
+++ b/unpack-debuginfo.sh
@@ -20,6 +20,20 @@ if [ $# -lt 2 ]; then
exit 1
fi
+function rpm_nevra {
+ if [ -z "$1" ]; then return; fi
+ n_evra="$(rpm -qp $1 --qf '%{N} %{E}:%{V}-%{R}.%{ARCH}' 2>/dev/null)"
+ set -- $n_evra
+ n=$1
+ evra=$2
+ if [ "${evra:0:1}" == ":" ]; then
+ evra="0$evra"
+ elif [ "${evra:0:6}" == "(none)" ]; then
+ evra="0${evra:6}"
+ fi
+ echo ${n}-${evra}
+}
+
function rpm_envra {
if [ -z "$1" ]; then return; fi
envra="$(rpm -qp $1 --qf '%{E}:%{N}-%{V}-%{R}.%{ARCH}' 2>/dev/null)"
@@ -54,12 +68,11 @@ if [ ! -d "$libdir/$reponame" ]; then
fi
while [ $# -gt 0 ]; do
- envra="$(rpm_envra $1)"
- nvra="${envra#*:}"
- first_letter="${nvra:0:1}"
- targetdir="$libdir/$reponame/$first_letter/$envra"
+ nevra="$(rpm_nevra $1)"
+ first_letter="${nevra:0:1}"
+ targetdir="$libdir/$reponame/$first_letter/$nevra"
if [ -d $targetdir ]; then
- [ "$verbose" ] && echo "$envra already unpacked; skipping..."
+ [ "$verbose" ] && echo "$nevra already unpacked; skipping..."
else
mkdir -p $targetdir
unpack_rpm $1 $targetdir