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"
TMP_DIR="$HOME/.xbmc/temp"
if [ -f /etc/update.conf ]; then
. /etc/update.conf
@ -42,10 +43,10 @@ fi
download () {
case "$DL_METHOD" in
wget)
wget -c $1 -P /tmp
wget -c $1 -P $TMP_DIR
;;
scp)
scp $SCP_ARG "$1" /tmp
scp $SCP_ARG "$1" $TMP_DIR
;;
esac
}
@ -67,13 +68,13 @@ if [ ! -f /var/lock/update.lock ]; then
THIS_VERSION="`cat /etc/version`"
# get infofile with the latest released version
rm -rf /tmp/latest
rm -rf $TMP_DIR/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"`"
rm -rf /tmp/latest
rm -rf $TMP_DIR/latest
# compare installed version with latest released version
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
# downloading the new version
rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2
download "$UPDATEURL/$NEW_IMAGE.tar.bz2"
# extract the image
rm -rf /tmp/$NEW_IMAGE
tar -xjvf /tmp/$NEW_IMAGE.tar.bz2 -C /tmp
rm -rf $TMP_DIR/$NEW_IMAGE
tar -xjvf $TMP_DIR/$NEW_IMAGE.tar.bz2 -C $TMP_DIR
# move KERNEL and SYSTEM to an temporary file
mkdir -p /storage/.update
[ -f /tmp/$NEW_IMAGE/target/KERNEL ] && \
mv /tmp/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp
[ -f $TMP_DIR/$NEW_IMAGE/target/KERNEL ] && \
mv $TMP_DIR/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp
[ -f /tmp/$NEW_IMAGE/target/SYSTEM ] && \
mv /tmp/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp
[ -f $TMP_DIR/$NEW_IMAGE/target/SYSTEM ] && \
mv $TMP_DIR/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp
sync
# 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
# cleanup tmp files
rm -rf /tmp/$NEW_IMAGE
rm -rf /tmp/$NEW_IMAGE.tar.bz2
rm -rf $TMP_DIR/$NEW_IMAGE
rm -rf $TMP_DIR/$NEW_IMAGE.tar.bz2
rm -rf /storage/.update/*.tmp
# we are ready (hopefully)

View File

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