[freenet-cvs] r18954 - trunk/apps/installer/installclasspath/linux

toad at freenetproject.org toad at freenetproject.org
Thu Apr 3 14:36:59 UTC 2008


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




More information about the cvs mailing list