autoupdate: rework autoupdate script to match better our versions scheme

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-10-02 17:43:56 +02:00
parent 45d1d4ee78
commit 8ae28c8171

View File

@ -84,54 +84,66 @@ if [ ! -f /var/lock/update.lock ]; then
NEW_MINOR="`echo "$NEW_VERSION" | cut -d "." -f2`" NEW_MINOR="`echo "$NEW_VERSION" | cut -d "." -f2`"
NEW_PATCH="`echo "$NEW_VERSION" | cut -d "." -f3`" NEW_PATCH="`echo "$NEW_VERSION" | cut -d "." -f3`"
if [ "$THIS_MAJOR" -lt "$NEW_MAJOR" -o \ if [ "$THIS_PATCH" -lt "$NEW_PATCH" -a \
"$THIS_MINOR" -lt "$NEW_MINOR" -o \ "$THIS_MINOR" -eq "$NEW_MINOR" -a \
"$THIS_PATCH" -lt "$NEW_PATCH" ]; then "$THIS_MAJOR" -eq "$NEW_MAJOR" ] || \
[ "$THIS_MINOR" -lt "$NEW_MINOR" -a \
"$THIS_MAJOR" -eq "$NEW_MAJOR" -a \
"$NEW_MINOR" -lt 90 ] || \
[ "$THIS_MINOR" -ge 90 -a \
"$NEW_MINOR" -lt 90 -a \
$(( $THIS_MAJOR + 1 )) -eq "$NEW_MAJOR" ]; then
AUTOUPDATE="$AUTOUPDATE"
elif [ "$THIS_MAJOR" -lt "$NEW_MAJOR" -a \
"$NEW_MINOR" -lt 90 ]; then
AUTOUPDATE="manually"
else
AUTOUPDATE="no"
fi
if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "manual" ]; then if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "manual" ]; then
# show a message if a new version is avaible # show a message if a new version is avaible
send_message "New update avaible: $NEW_VERSION - please update manually" send_message "New update avaible: $NEW_VERSION - please update manually"
elif [ "$AUTOUPDATE" = "auto" ]; then elif [ "$AUTOUPDATE" = "auto" ]; then
# show a message if a new version is avaible # show a message if a new version is avaible
send_message "New update avaible: $NEW_VERSION - downloading and extracting the new version..." send_message "New update avaible: $NEW_VERSION - downloading and extracting the new version..."
# locking autoupdate # locking autoupdate
touch /var/lock/update.lock touch /var/lock/update.lock
# downloading the new version # downloading the new version
rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2 rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2
download "$UPDATEURL/$NEW_IMAGE.tar.bz2" download "$UPDATEURL/$NEW_IMAGE.tar.bz2"
# extract the image # extract the image
rm -rf $TMP_DIR/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
tar -xjvf $TMP_DIR/$NEW_IMAGE.tar.bz2 -C $TMP_DIR tar -xjvf $TMP_DIR/$NEW_IMAGE.tar.bz2 -C $TMP_DIR
# move KERNEL and SYSTEM to an temporary file # move KERNEL and SYSTEM to an temporary file
mkdir -p /storage/.update mkdir -p /storage/.update
[ -f $TMP_DIR/$NEW_IMAGE/target/KERNEL ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/KERNEL ] && \
mv $TMP_DIR/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp mv $TMP_DIR/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp
[ -f $TMP_DIR/$NEW_IMAGE/target/SYSTEM ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/SYSTEM ] && \
mv $TMP_DIR/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp mv $TMP_DIR/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp
sync sync
# move KERNEL and SYSTEM to the right place # move KERNEL and SYSTEM to the right place
mv /storage/.update/KERNEL.tmp /storage/.update/KERNEL mv /storage/.update/KERNEL.tmp /storage/.update/KERNEL
mv /storage/.update/SYSTEM.tmp /storage/.update/SYSTEM mv /storage/.update/SYSTEM.tmp /storage/.update/SYSTEM
# cleanup tmp files # cleanup tmp files
rm -rf $TMP_DIR/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2 rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2
rm -rf /storage/.update/*.tmp rm -rf /storage/.update/*.tmp
# we are ready (hopefully) # we are ready (hopefully)
send_message "Update $NEW_VERSION - downloaded and extracted - please reboot to install" send_message "Update $NEW_VERSION - downloaded and extracted - please reboot to install"
fi
fi fi
fi fi
fi fi