Patch to start-freenet.sh. Fixes the following issues:
* Improper reliance on bash for echo behavior -- instead, actually TEST
what echo does and use the right stuff. (Borrowed from perl's
Configure script.)
* Offers to download freenet-ext.jar if it doesn't exist, just like
seednodes.ref.
* Fixes omission of double quotes around $@ for safety.
* More robust user input checking ("yes" will work as "y"). This could
still be tightened further, to require a string beginning with Y or N,
but it's probably OK for now.-- Greg Wooledge | "Truth belongs to everybody." [EMAIL PROTECTED] | - The Red Hot Chili Peppers http://wooledge.org/~greg/ |
Index: start-freenet.sh =================================================================== RCS file: /cvsroot/freenet/freenet/start-freenet.sh,v retrieving revision 1.24.2.2 diff -u -r1.24.2.2 start-freenet.sh --- start-freenet.sh 29 Oct 2002 20:49:48 -0000 1.24.2.2 +++ start-freenet.sh 30 Oct 2002 15:36:30 -0000 @@ -1,22 +1,31 @@ #!/bin/sh -# determine OS -OS=`uname` -# some OS use bash as sh, f.ex. Linux -# other has a real old Bourne Shell, f.ex SunOS/Solaris -# this is important since they do not behave in the same way -SH_IS_BASH=0 -if test $OS != "SunOS" -then -SH_IS_BASH=1 -fi +# Check to see whether we use echo -n or echo "\c" to suppress newlines. +trap 'rm -f /tmp/.echotmp$$; exit 1' 1 2 3 15 +(echo "hi there\c" ; echo " ") >/tmp/.echotmp$$ +case "`cat /tmp/.echotmp$$`" in + *c*) n='-n'; c='';; + *) n=''; c='\c';; +esac +rm -f /tmp/.echotmp$$ + # and get java implementation too, Sun JDK or Kaffe JAVA_IMPL=`java -version 2>&1 | head -1 | cut -f1 -d' '` if test ! -f freenet-ext.jar; then echo freenet-ext.jar not found. It can be downloaded from echo http://freenetproject.org/snapshots/freenet-ext.jar - exit + echo + echo $n "Would you like me to download it now? [Y/n] $c" + read resp + case "$resp" in + [Nn]*) exit 0;; + esac + wget http://freenetproject.org/snapshots/freenet-ext.jar + if test ! -f freenet-ext.jar; then + echo "Sorry, I couldn't download it. Aborting." + exit 1 + fi fi CLASSPATH=freenet.jar:freenet-ext.jar:$CLASSPATH @@ -27,14 +36,12 @@ if test ! -f seednodes.ref; then echo seednodes.ref not found, would you like to download some seeds - echo from http://hawk.freenetproject.org/~freenet4/seednodes.ref? - # wow, different echos on bash and sh - if test "$SH_IS_BASH" = "1"; then echo -n "[y/N] "; else echo '[y/N]\c';fi + echo $n "[y/N] $c" read resp - if test "$resp" = "y" -o "$resp" = "Y"; then - wget http://hawk.freenetproject.org/~freenet4/seednodes.ref - fi + case "$resp" in + [yY]*) wget http://hawk.freenetproject.org/~freenet4/seednodes.ref;; + esac fi if test ! -f freenet.conf; then @@ -61,6 +68,6 @@ fi echo -n "Starting Freenet now: " -nice -n 10 -- java $JAVA_ARGS freenet.node.Main $@ & +nice -n 10 -- java $JAVA_ARGS freenet.node.Main "$@" & echo $! > freenet.pid echo "Done"
msg05038/pgp00000.pgp
Description: PGP signature
