autoupdate: use /storage/.xbmc/temp as tempdir for downloading and extracting (fixes update problems on low memory devices like ATV1)

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-02-28 00:26:57 +01:00
parent c2c4fa8c4d
commit 7e1fd18d37
2 changed files with 30 additions and 26 deletions

View File

@ -21,6 +21,7 @@
################################################################################ ################################################################################
OPENELEC_SETTINGS="$HOME/.xbmc/userdata/addon_data/os.openelec.settings/settings.xml" OPENELEC_SETTINGS="$HOME/.xbmc/userdata/addon_data/os.openelec.settings/settings.xml"
TMP_DIR="$HOME/.xbmc/temp"
if [ -f /etc/update.conf ]; then if [ -f /etc/update.conf ]; then
. /etc/update.conf . /etc/update.conf
@ -42,10 +43,10 @@ fi
download () { download () {
case "$DL_METHOD" in case "$DL_METHOD" in
wget) wget)
wget -c $1 -P /tmp wget -c $1 -P $TMP_DIR
;; ;;
scp) scp)
scp $SCP_ARG "$1" /tmp scp $SCP_ARG "$1" $TMP_DIR
;; ;;
esac esac
} }
@ -67,13 +68,13 @@ if [ ! -f /var/lock/update.lock ]; then
THIS_VERSION="`cat /etc/version`" THIS_VERSION="`cat /etc/version`"
# get infofile with the latest released version # get infofile with the latest released version
rm -rf /tmp/latest rm -rf $TMP_DIR/latest
download "$UPDATEURL/latest" download "$UPDATEURL/latest"
NEW_IMAGE="`cat /tmp/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`" NEW_IMAGE="`cat $TMP_DIR/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`"
NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f5 | tr -d "r"`" NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f5 | tr -d "r"`"
rm -rf /tmp/latest rm -rf $TMP_DIR/latest
# compare installed version with latest released version # compare installed version with latest released version
THIS_VERSION="`echo "$THIS_VERSION" | cut -d "-" -f3 | tr -d "r"`" THIS_VERSION="`echo "$THIS_VERSION" | cut -d "-" -f3 | tr -d "r"`"
@ -94,20 +95,21 @@ if [ ! -f /var/lock/update.lock ]; then
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
download "$UPDATEURL/$NEW_IMAGE.tar.bz2" download "$UPDATEURL/$NEW_IMAGE.tar.bz2"
# extract the image # extract the image
rm -rf /tmp/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
tar -xjvf /tmp/$NEW_IMAGE.tar.bz2 -C /tmp 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/$NEW_IMAGE/target/KERNEL ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/KERNEL ] && \
mv /tmp/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp mv $TMP_DIR/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp
[ -f /tmp/$NEW_IMAGE/target/SYSTEM ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/SYSTEM ] && \
mv /tmp/$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
@ -115,8 +117,8 @@ if [ ! -f /var/lock/update.lock ]; then
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/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
rm -rf /tmp/$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)

View File

@ -21,6 +21,7 @@
################################################################################ ################################################################################
OPENELEC_SETTINGS="$HOME/.xbmc/userdata/addon_data/os.openelec.settings/settings.xml" OPENELEC_SETTINGS="$HOME/.xbmc/userdata/addon_data/os.openelec.settings/settings.xml"
TMP_DIR="$HOME/.xbmc/temp"
if [ -f /etc/update.conf ]; then if [ -f /etc/update.conf ]; then
. /etc/update.conf . /etc/update.conf
@ -42,10 +43,10 @@ fi
download () { download () {
case "$DL_METHOD" in case "$DL_METHOD" in
wget) wget)
wget -c $1 -P /tmp wget -c $1 -P $TMP_DIR
;; ;;
scp) scp)
scp $SCP_ARG "$1" /tmp scp $SCP_ARG "$1" $TMP_DIR
;; ;;
esac esac
} }
@ -70,13 +71,13 @@ if [ ! -f /var/lock/update.lock ]; then
THIS_PATCH="`echo "$THIS_VERSION" | cut -d "." -f3`" THIS_PATCH="`echo "$THIS_VERSION" | cut -d "." -f3`"
# get infofile with the latest released version # get infofile with the latest released version
rm -rf /tmp/latest rm -rf $TMP_DIR/latest
download "$UPDATEURL/latest" download "$UPDATEURL/latest"
NEW_IMAGE="`cat /tmp/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`" NEW_IMAGE="`cat $TMP_DIR/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`"
NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f3`" NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f3`"
rm -rf /tmp/latest rm -rf $TMP_DIR/latest
# compare installed version with latest released version # compare installed version with latest released version
NEW_MAJOR="`echo "$NEW_VERSION" | cut -d "." -f1`" NEW_MAJOR="`echo "$NEW_VERSION" | cut -d "." -f1`"
@ -101,20 +102,21 @@ if [ ! -f /var/lock/update.lock ]; then
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
download "$UPDATEURL/$NEW_IMAGE.tar.bz2" download "$UPDATEURL/$NEW_IMAGE.tar.bz2"
# extract the image # extract the image
rm -rf /tmp/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
tar -xjvf /tmp/$NEW_IMAGE.tar.bz2 -C /tmp 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/$NEW_IMAGE/target/KERNEL ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/KERNEL ] && \
mv /tmp/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp mv $TMP_DIR/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp
[ -f /tmp/$NEW_IMAGE/target/SYSTEM ] && \ [ -f $TMP_DIR/$NEW_IMAGE/target/SYSTEM ] && \
mv /tmp/$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
@ -122,8 +124,8 @@ if [ ! -f /var/lock/update.lock ]; then
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/$NEW_IMAGE rm -rf $TMP_DIR/$NEW_IMAGE
rm -rf /tmp/$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)