summaryrefslogtreecommitdiffstats
path: root/scripts/libptxdist.sh
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2011-12-09 11:09:55 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2011-12-09 14:50:40 +0100
commit203bbe8d7e254b294e533c7acf7b1f07a769dad1 (patch)
treeb6b8b16b8c413a613cacc0c6f77870de619e691f /scripts/libptxdist.sh
parentc8313072bf072d9e2b0f5481aa07ec069cc812da (diff)
downloadptxdist-203bbe8d7e254b294e533c7acf7b1f07a769dad1.tar.gz
ptxdist-203bbe8d7e254b294e533c7acf7b1f07a769dad1.tar.xz
libptxdist: improve version compare
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'scripts/libptxdist.sh')
-rw-r--r--scripts/libptxdist.sh12
1 files changed, 7 insertions, 5 deletions
diff --git a/scripts/libptxdist.sh b/scripts/libptxdist.sh
index 6b196cb8f..af200b7b7 100644
--- a/scripts/libptxdist.sh
+++ b/scripts/libptxdist.sh
@@ -741,14 +741,16 @@ ptxd_ipkg_arch() {
#
ptxd_ipkg_rev_decimal_convert() {
local ver=$*
- while echo $ver | grep -q '[^0-9.]'
+ while echo $ver | grep -q '[^0-9.~]'
do
- local char=`echo -n $ver | sed 's/.*\([^0-9.]\).*/\1/'`
- local char_dec=`echo -n $char | od -b | head -n 1 | awk '{print $2}'`
- ver=`echo $ver | sed "s/$char/.$char_dec/g"`
+ local char="$(sed 's/.*\([^0-9.~]\).*/\1/' <<< $ver)"
+ local char_dec="$(echo $(od -b -N1 -An <<< $char))"
+ ver="${ver//$char/.$char_dec}"
done
- ver=`echo $ver | sed 's/\.\./.0/g'`
+ ver="$(sed -r "s/\.?~/.-1./g" <<< $ver)"
+ ver="${ver//../.0}"
+ ver="${ver#.}"
echo "$ver"
}