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


Reply via email to