fix update's version logic

SVN-Revision: 86
This commit is contained in:
Mike Baker 2004-07-11 22:54:23 +00:00
parent ee41d03754
commit 8d8f855860

View file

@ -19,6 +19,18 @@ set -e
# explicitly enable it first and disable it afterwards. # explicitly enable it first and disable it afterwards.
set -o noglob set -o noglob
ipkg_is_upgrade () {
local A B a b
A=$(echo $1 | sed "s/[0-9]*/ & /g")
B=$(echo $2 | sed "s/[0-9]*/ & /g")
while [ \! -z "$A" ] && [ \! -z "$B" ]; do {
set $A; a=$1; shift; A=$*
set $B; b=$1; shift; B=$*
{ [ "$a" -gt "$b" ] 2>- || [ "$a" ">" "$b" ]; } && { return 0; }
}; done
return 1;
}
ipkg_srcs() { ipkg_srcs() {
local srcre="$1" local srcre="$1"
sed -ne "s/^src[[:space:]]\+$srcre[[:space:]]\+//p" < $IPKG_CONF sed -ne "s/^src[[:space:]]\+$srcre[[:space:]]\+//p" < $IPKG_CONF
@ -984,7 +996,7 @@ ipkg_upgrade_pkg() {
if [ "$avail_ver" = "$inst_ver" ]; then if [ "$avail_ver" = "$inst_ver" ]; then
echo "Package $pkg ($inst_ver) installed in $dest_name is up to date" echo "Package $pkg ($inst_ver) installed in $dest_name is up to date"
elif [ "$avail_ver" -gt "$inst_ver" ]; then elif ipkg_is_upgrade "$avail_ver" "$inst_ver"; then
echo "Upgrading $pkg ($dest_name) from $inst_ver to $avail_ver" echo "Upgrading $pkg ($dest_name) from $inst_ver to $avail_ver"
ipkg_get_install_dest $dest $pkg ipkg_get_install_dest $dest $pkg
else else