summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@vyatta.com>2010-03-08 17:36:22 -0800
committerBob Gilligan <gilligan@vyatta.com>2010-03-08 17:36:22 -0800
commit81df5c53d7dd6e7d3869ce96b3febc172e21611b (patch)
treec8b3a3d8e29a3952148ebf1a562d70da32d28512
parentfb87a7ac196538f6e3eab6794f92bfe8be66b054 (diff)
downloadvyatta-cfg-quagga-81df5c53d7dd6e7d3869ce96b3febc172e21611b.tar.gz
vyatta-cfg-quagga-81df5c53d7dd6e7d3869ce96b3febc172e21611b.zip
Use more reliable method for determining system version.
-rwxr-xr-xscripts/install/install-functions7
-rwxr-xr-xscripts/install/install-image8
-rwxr-xr-xscripts/install/install-image-existing2
3 files changed, 11 insertions, 6 deletions
diff --git a/scripts/install/install-functions b/scripts/install/install-functions
index 3f85e75b..d88df618 100755
--- a/scripts/install/install-functions
+++ b/scripts/install/install-functions
@@ -281,7 +281,7 @@ is_union_install ()
# outputs the version string of the current running version.
get_cur_version ()
{
- ver=`dpkg -l | grep "^ii vyatta-version" | awk '{print $3}'`
+ ver=`dpkg-query --showformat='${Version}' --show vyatta-version`
if [ -z "$ver" ]; then
echo "UNKNOWN"
else
@@ -299,14 +299,15 @@ get_new_version ()
# CD_SQUASH_ROOT is set up => we are installing with a specified ISO
# image file. use the version string from there.
dpkg -l --root=${CD_SQUASH_ROOT} | \
- grep "^ii vyatta-version" | awk '{print $3}'
+ grep "^.. vyatta-version " | awk '{print $3}'
return
fi
ver_file=${ver_path}
if is_live_cd_boot && [ -f "$ver_file" ]; then
# we are installing from a live CD boot
- dpkg -l | grep "^ii vyatta-version" | awk '{print $3}'
+ ver=`dpkg-query --showformat='${Version}' --show vyatta-version`
+ echo $ver
return
fi
diff --git a/scripts/install/install-image b/scripts/install/install-image
index fd306aec..f717588b 100755
--- a/scripts/install/install-image
+++ b/scripts/install/install-image
@@ -211,9 +211,13 @@ else
CURVER=$(get_cur_version)
fi
NEWVER=$(get_new_version)
-if [ -z "$CURVER" ] || [ -z "$NEWVER" ]; then
- fail_exit 'Cannot find release version.'
+if [ -z "$CURVER" ] ; then
+ fail_exit 'Cannot find current release version.'
fi
+if [ -z "$NEWVER" ] ; then
+ fail_exit 'Cannot find new release version.'
+fi
+
if [ "$CURVER" == "$NEWVER" ]; then
fail_exit "Version \"$NEWVER\" is already installed."
fi
diff --git a/scripts/install/install-image-existing b/scripts/install/install-image-existing
index 1514d0a1..86a27f3e 100755
--- a/scripts/install/install-image-existing
+++ b/scripts/install/install-image-existing
@@ -32,7 +32,7 @@ if [ -z "$CURVER" ]; then
fi
# get new version string. this is from the squashfs image.
-NEWVER=`dpkg -l --root=${CD_SQUASH_ROOT} | grep "^ii vyatta-version" | awk '{print $3}'`
+NEWVER=`dpkg -l --root=${CD_SQUASH_ROOT} | grep "^.. vyatta-version " | awk '{print $3}'`
if [ -z "$NEWVER" ]; then
failure_exit 'Cannot find new release version.'