Author: nextgens
Date: 2008-06-01 04:23:44 +0000 (Sun, 01 Jun 2008)
New Revision: 20171
Modified:
trunk/apps/new_installer/scripts/update.sh
Log:
new_installer: simplify update.sh
Modified: trunk/apps/new_installer/scripts/update.sh
===================================================================
--- trunk/apps/new_installer/scripts/update.sh 2008-06-01 03:37:08 UTC (rev
20170)
+++ trunk/apps/new_installer/scripts/update.sh 2008-06-01 04:23:44 UTC (rev
20171)
@@ -4,8 +4,83 @@
JOPTS="-Djava.net.preferIPv4Stack=true"
echo "Updating freenet"
+invert_return_code () {
+ $*
+ if test $? -ne 0
+ then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# Test if two files exist: return 0 if they *both* exist
+file_exist () {
+ if test -n "$1" -a -n "$2"
+ then
+ if test -e "$1" -a -e "$2"
+ then
+ return 0
+ fi
+ fi
+
+ return 1
+}
+
+# Three functions used to compare files: return 0 if it matches
+file_cmp_comp () {
+ if file_exist "$1" "$2"
+ then
+ cmp -s "$1" "$2"
+ return $?
+ else
+ return 1
+ fi
+}
+
+file_md5sum_comp () {
+ if file_exist "$1" "$2"
+ then
+ MD5_FILE1="`cat \"$1\"|md5sum`"
+ MD5_FILE2="`cat \"$2\"|md5sum`"
+ return `test "$MD5_FILE1" = "$MD5_FILE2"`
+ else
+ return 1
+ fi
+}
+
+file_sha1sum_comp () {
+ if file_exist "$1" "$2"
+ then
+ SHA1_FILE1="`cat \"$1\"|sha1sum`"
+ SHA1_FILE2="`cat \"$2\"|sha1sum`"
+ echo $SHA1_FILE1 $SHA1_FILE2
+ return `test "$SHA1_FILE1" = "$SHA1_FILE2"`
+ else
+ return 1
+ fi
+}
+
+# Determine which one we will use
+if test ! -x "`which sha1sum`"
+then
+ if test ! -x "`which md5sum`"
+ then
+ if test ! -x "`which cmp`"
+ then
+ echo "No cmp nor md5sum nor sha1sum utility detected;
Please install one of those"
+ exit 1
+ else
+ CMP="invert_return_code file_cmp_comp"
+ fi
+ else
+ CMP="invert_return_code file_md5sum_comp"
+ fi
+else
+ CMP="invert_return_code file_sha1sum_comp"
+fi
+
# Attempt to use the auto-fetcher code, which will check the sha1sums.
-
if test "$#" -gt 0
then
if test "$1" = "testing"
@@ -24,11 +99,10 @@
# otherwise.
mkdir -p download-temp
-
if test -d download-temp
then
echo Created temporary download directory.
- cp *.jar *.sha1 download-temp
+ cp -f freenet-$RELEASE-latest.jar freenet-ext.jar
freenet-$RELEASE-latest.jar.sha1 freenet-ext.jar.sha1 download-temp
else
echo Could not create temporary download directory.
exit
@@ -150,63 +224,33 @@
exit
fi
-cat wrapper.conf | sed 's/freenet-cvs-snapshot/freenet/g' | sed
's/freenet-stable-latest/freenet/g' | sed 's/freenet.jar.new/freenet.jar/g' |
sed 's/freenet-ext.jar.new/freenet-ext.jar/g' > wrapper2.conf
+# Make sure the new files will be used (necessary to prevent
+# the node's auto-update to play us tricks)
+cat wrapper.conf | \
+ sed 's/freenet-cvs-snapshot/freenet/g' | \
+ sed 's/freenet-stable-latest/freenet/g' | \
+ sed 's/freenet.jar.new/freenet.jar/g' | \
+ sed 's/freenet-ext.jar.new/freenet-ext.jar/g' \
+ > wrapper2.conf
mv wrapper2.conf wrapper.conf
-if test ! -x "`which cmp`"
+if $CMP freenet.jar download-temp/freenet-$RELEASE-latest.jar >/dev/null
then
- if test ! -x "`which md5sum`"
- then
- echo No cmp or md5sum utility detected
- echo Restarting the node as we cannot tell whether we need to.
- ./run.sh stop
- mv download-temp/freenet-$RELEASE-latest.jar
freenet-$RELEASE-latest.jar
- rm freenet.jar
- ln -s freenet-$RELEASE-latest.jar freenet.jar
- mv download-temp/freenet-ext.jar freenet-ext.jar
- ./run.sh start
- else
- if test "`md5sum freenet.jar | cut -d ' ' -f1`" != "`md5sum
download-temp/freenet-$RELEASE-latest.jar | cut -d ' ' -f1`"
- then
- echo Restarting node because
freenet-$RELEASE-latest.jar updated.
- ./run.sh stop
- mv download-temp/freenet-$RELEASE-latest.jar
freenet-$RELEASE-latest.jar
- rm freenet.jar
- ln -s freenet-$RELEASE-latest.jar freenet.jar
- mv download-temp/freenet-ext.jar freenet-ext.jar
- ./run.sh start
- elif test "`md5sum freenet-ext.jar | cut -d ' ' -f 1`" !=
"`md5sum download-temp/freenet-ext.jar | cut -d ' ' -f1`"
- then
- echo Restarting node because freenet-ext.jar updated.
- ./run.sh stop
- mv download-temp/freenet-ext.jar freenet-ext.jar
- ./run.sh restart
- else
- echo Your node is up to date.
- fi
- fi
+ echo Restarting node because freenet-$RELEASE-latest.jar updated.
+ ./run.sh stop
+ cp download-temp/*.jar download-temp/*.sha1 .
+ rm freenet.jar
+ ln -s freenet-$RELEASE-latest.jar freenet.jar
+ ./run.sh start
+elif $CMP freenet-ext.jar download-temp/freenet-ext.jar >/dev/null
+then
+ echo Restarting node because freenet-ext.jar updated.
+ ./run.sh stop
+ cp download-temp/freenet-ext.jar* .
+ rm freenet.jar
+ ./run.sh restart
else
- if cmp freenet.jar download-temp/freenet-$RELEASE-latest.jar
- then
- # freenet.jar is up to date
- if cmp download-temp/freenet-ext.jar freenet-ext.jar
- then
- echo Your node is up to date
- else
- echo Restarting node because freenet-ext.jar updated.
- ./run.sh stop
- mv download-temp/freenet-ext.jar freenet-ext.jar
- ./run.sh start
- fi
- else
- echo Restarting node because freenet-$RELEASE-latest.jar updated
- ./run.sh stop
- mv download-temp/freenet-$RELEASE-latest.jar
freenet-$RELEASE-latest.jar
- rm freenet.jar
- ln -s freenet-$RELEASE-latest.jar freenet.jar
- mv download-temp/freenet-ext.jar freenet-ext.jar
- ./run.sh start
- fi
+ echo Your node is up to date.
fi
rm -rf download-temp