Author: toad
Date: 2008-04-03 14:36:58 +0000 (Thu, 03 Apr 2008)
New Revision: 18954
Modified:
trunk/apps/installer/installclasspath/linux/update.sh
Log:
Download jar to a temporary location. If it is different, shutdown the node,
substitute the jar, then startup the node.
Also fix freenet-ext.jar.new in wrapper.conf.
Modified: trunk/apps/installer/installclasspath/linux/update.sh
===================================================================
--- trunk/apps/installer/installclasspath/linux/update.sh 2008-04-03
14:15:06 UTC (rev 18953)
+++ trunk/apps/installer/installclasspath/linux/update.sh 2008-04-03
14:36:58 UTC (rev 18954)
@@ -77,22 +77,19 @@
exit
fi
-if test -f freenet-ext.jar
-then
- cp freenet-ext.jar freenet-ext.jar.old
-fi
+# We need to download the jars to temporary locations, check whether they are
different,
+# and if necessary shutdown the node before replacing, because java may do
wierd things
+# otherwise.
-if java $JOPTS -cp sha1test.jar Sha1Test freenet-$RELEASE-latest.jar
+if java $JOPTS -cp sha1test.jar Sha1Test freenet-$RELEASE-latest.jar temp-
then
echo Downloaded freenet-$RELEASE-latest.jar
- rm -f freenet.jar
- ln -s freenet-$RELEASE-latest.jar freenet.jar
else
echo Could not download new freenet-$RELEASE-latest.jar.
exit
fi
-if java $JOPTS -cp sha1test.jar Sha1Test freenet-ext.jar
+if java $JOPTS -cp sha1test.jar Sha1Test freenet-ext.jar temp-
then
echo Downloaded freenet-ext.jar
else
@@ -100,7 +97,7 @@
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' >
wrapper2.conf
+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`"
@@ -109,26 +106,53 @@
then
echo No cmp or md5sum utility detected
echo Restarting the node as we cannot tell whether we need to.
- ./run.sh restart
+ ./run.sh stop
+ mv temp-freenet-$RELEASE-latest.jar freenet-$RELEASE-latest.jar
+ rm freenet.jar
+ ln -s freenet-$RELEASE-latest.jar freenet.jar
+ mv temp-freenet-ext.jar freenet-ext.jar
+ ./run.sh start
else
- if test "`md5sum freenet-stable-latest.jar`" != "`md5sum
freenet-stable-latest.jar.old`"
+ if test "`md5sum freenet.jar`" != "`md5sum
temp-freenet-$RELEASE-latest.jar`"
then
- echo Restarting node because freenet-stable-latest.jar
updated.
- ./run.sh restart
- elif test "`md5sum freenet-ext.jar`" != "`md5sum
freenet-ext.jar.old`"
+ echo Restarting node because
freenet-$RELEASE-latest.jar updated.
+ ./run.sh stop
+ mv temp-freenet-$RELEASE-latest.jar
freenet-$RELEASE-latest.jar
+ rm freenet.jar
+ ln -s freenet-$RELEASE-latest.jar freenet.jar
+ mv temp-freenet-ext.jar freenet-ext.jar
+ ./run.sh start
+ elif test "`md5sum freenet-ext.jar`" != "`md5sum
temp-freenet-ext.jar`"
then
echo Restarting node because freenet-ext.jar updated.
+ ./run.sh stop
+ mv temp-freenet-ext.jar freenet-ext.jar
./run.sh restart
fi
fi
else
- if cmp freenet-stable-latest.jar freenet-stable-latest.jar.old && cmp
freenet-ext.jar freenet-ext.jar.old
+ if cmp freenet.jar temp-freenet-$RELEASE-latest.jar
then
- echo Your node is up to date
+ # freenet.jar is up to date
+ if cmp temp-freenet-ext.jar freenet-ext.jar
+ echo Your node is up to date
+ else
+ echo Restarting node because freenet-ext.jar updated.
+ ./run.sh stop
+ mv temp-freenet-ext.jar freenet-ext.jar
+ ./run.sh start
+ fi
else
- echo Restarting node because freenet-stable-latest.jar or
freenet-ext.jar updated.
- ./run.sh restart
+ echo Restarting node because freenet-$RELEASE-latest.jar updated
+ ./run.sh stop
+ mv temp-freenet-$RELEASE-latest.jar freenet-$RELEASE-latest.jar
+ rm freenet.jar
+ ln -s freenet-$RELEASE-latest.jar freenet.jar
+ mv temp-freenet-ext.jar freenet-ext.jar
+ ./run.sh start
fi
fi
+rm -f temp-freenet-$RELEASE-latest.jar temp-freenet-ext.jar
+
cd $WHEREAMI