[freenet-cvs] r20171 - trunk/apps/new_installer/scripts

nextgens at freenetproject.org nextgens at freenetproject.org
Sun Jun 1 04:23:45 UTC 2008


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




More information about the cvs mailing list