You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2013/05/20 19:09:28 UTC

svn commit: r1484528 - in /zookeeper/branches/branch-3.4: CHANGES.txt bin/zkCleanup.sh bin/zkCli.sh bin/zkEnv.sh bin/zkServer.sh

Author: camille
Date: Mon May 20 17:09:28 2013
New Revision: 1484528

URL: http://svn.apache.org/r1484528
Log:
ZOOKEEPER-1663. scripts don't work when path contains spaces (Amichai Rothman via camille)

Modified:
    zookeeper/branches/branch-3.4/CHANGES.txt
    zookeeper/branches/branch-3.4/bin/zkCleanup.sh
    zookeeper/branches/branch-3.4/bin/zkCli.sh
    zookeeper/branches/branch-3.4/bin/zkEnv.sh
    zookeeper/branches/branch-3.4/bin/zkServer.sh

Modified: zookeeper/branches/branch-3.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1484528&r1=1484527&r2=1484528&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.4/CHANGES.txt Mon May 20 17:09:28 2013
@@ -66,6 +66,8 @@ BUGFIXES:
   ZOOKEEPER-1706. Typo in Double Barriers example (Jingguo Yao via fpj)
   
   ZOOKEEPER-1642. Leader Loading Database Twice (fpj via camille)
+  
+  ZOOKEEPER-1663. scripts don't work when path contains spaces (Amichai Rothman via camille)
 
 IMPROVEMENTS:
 

Modified: zookeeper/branches/branch-3.4/bin/zkCleanup.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/bin/zkCleanup.sh?rev=1484528&r1=1484527&r2=1484528&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/bin/zkCleanup.sh (original)
+++ zookeeper/branches/branch-3.4/bin/zkCleanup.sh Mon May 20 17:09:28 2013
@@ -27,8 +27,8 @@
 
 # use POSTIX interface, symlink is followed automatically
 ZOOBIN="${BASH_SOURCE-$0}"
-ZOOBIN=`dirname ${ZOOBIN}`
-ZOOBINDIR=`cd ${ZOOBIN}; pwd`
+ZOOBIN="$(dirname "${ZOOBIN}")"
+ZOOBINDIR="$(cd "${ZOOBIN}"; pwd)"
 
 if [ -e "$ZOOBIN/../libexec/zkEnv.sh" ]; then
   . "$ZOOBINDIR"/../libexec/zkEnv.sh
@@ -36,16 +36,16 @@ else
   . "$ZOOBINDIR"/zkEnv.sh
 fi
 
-ZOODATADIR=$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" | sed -e 's/.*=//')
-ZOODATALOGDIR=$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" | sed -e 's/.*=//')
+ZOODATADIR="$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" | sed -e 's/.*=//')"
+ZOODATALOGDIR="$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" | sed -e 's/.*=//')"
 
 if [ "x$ZOODATALOGDIR" = "x" ]
 then
-$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
      -cp "$CLASSPATH" $JVMFLAGS \
      org.apache.zookeeper.server.PurgeTxnLog "$ZOODATADIR" $*
 else
-$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
      -cp "$CLASSPATH" $JVMFLAGS \
      org.apache.zookeeper.server.PurgeTxnLog "$ZOODATALOGDIR" "$ZOODATADIR" $*
 fi

Modified: zookeeper/branches/branch-3.4/bin/zkCli.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/bin/zkCli.sh?rev=1484528&r1=1484527&r2=1484528&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/bin/zkCli.sh (original)
+++ zookeeper/branches/branch-3.4/bin/zkCli.sh Mon May 20 17:09:28 2013
@@ -27,8 +27,8 @@
 
 # use POSTIX interface, symlink is followed automatically
 ZOOBIN="${BASH_SOURCE-$0}"
-ZOOBIN=`dirname ${ZOOBIN}`
-ZOOBINDIR=`cd ${ZOOBIN}; pwd`
+ZOOBIN="$(dirname "${ZOOBIN}")"
+ZOOBINDIR="$(cd "${ZOOBIN}"; pwd)"
 
 if [ -e "$ZOOBIN/../libexec/zkEnv.sh" ]; then
   . "$ZOOBINDIR"/../libexec/zkEnv.sh
@@ -36,6 +36,6 @@ else
   . "$ZOOBINDIR"/zkEnv.sh
 fi
 
-$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
      -cp "$CLASSPATH" $CLIENT_JVMFLAGS $JVMFLAGS \
      org.apache.zookeeper.ZooKeeperMain "$@"

Modified: zookeeper/branches/branch-3.4/bin/zkEnv.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/bin/zkEnv.sh?rev=1484528&r1=1484527&r2=1484528&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/bin/zkEnv.sh (original)
+++ zookeeper/branches/branch-3.4/bin/zkEnv.sh Mon May 20 17:09:28 2013
@@ -23,8 +23,8 @@
 # or the conf directory that is
 # a sibling of this script's directory
 
-ZOOBINDIR=${ZOOBINDIR:-/usr/bin}
-ZOOKEEPER_PREFIX=${ZOOBINDIR}/..
+ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
+ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
 
 if [ "x$ZOOCFGDIR" = "x" ]
 then
@@ -76,18 +76,19 @@ do
 done
 
 #make it work in the binary package
-if [ -e ${ZOOKEEPER_PREFIX}/share/zookeeper/zookeeper-*.jar ]; then
-  LIBPATH="${ZOOKEEPER_PREFIX}"/share/zookeeper/*.jar
+#(use array for LIBPATH to account for spaces within wildcard expansion)
+if [ -e "${ZOOKEEPER_PREFIX}"/share/zookeeper/zookeeper-*.jar ]; then
+  LIBPATH=("${ZOOKEEPER_PREFIX}"/share/zookeeper/*.jar)
 else
   #release tarball format
   for i in "$ZOOBINDIR"/../zookeeper-*.jar
   do
     CLASSPATH="$i:$CLASSPATH"
   done
-  LIBPATH="${ZOOBINDIR}"/../lib/*.jar
+  LIBPATH=("${ZOOBINDIR}"/../lib/*.jar)
 fi
 
-for i in ${LIBPATH}
+for i in "${LIBPATH[@]}"
 do
     CLASSPATH="$i:$CLASSPATH"
 done

Modified: zookeeper/branches/branch-3.4/bin/zkServer.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/bin/zkServer.sh?rev=1484528&r1=1484527&r2=1484528&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/bin/zkServer.sh (original)
+++ zookeeper/branches/branch-3.4/bin/zkServer.sh Mon May 20 17:09:28 2013
@@ -44,13 +44,13 @@ fi
 
 # use POSTIX interface, symlink is followed automatically
 ZOOBIN="${BASH_SOURCE-$0}"
-ZOOBIN=`dirname ${ZOOBIN}`
-ZOOBINDIR=`cd ${ZOOBIN}; pwd`
+ZOOBIN="$(dirname "${ZOOBIN}")"
+ZOOBINDIR="$(cd "${ZOOBIN}"; pwd)"
 
 if [ -e "$ZOOBIN/../libexec/zkEnv.sh" ]; then
-  . "$ZOOBINDIR"/../libexec/zkEnv.sh
+  . "$ZOOBINDIR/../libexec/zkEnv.sh"
 else
-  . "$ZOOBINDIR"/zkEnv.sh
+  . "$ZOOBINDIR/zkEnv.sh"
 fi
 
 if [ "x$SERVER_JVMFLAGS"  != "x" ]
@@ -64,7 +64,7 @@ then
 fi
 
 # if we give a more complicated path to the config, don't screw around in $ZOOCFGDIR
-if [ "x`dirname $ZOOCFG`" != "x$ZOOCFGDIR" ]
+if [ "x$(dirname "$ZOOCFG")" != "x$ZOOCFGDIR" ]
 then
     ZOOCFG="$2"
 fi
@@ -80,15 +80,15 @@ fi
 
 echo "Using config: $ZOOCFG" >&2
 
-if [ -z $ZOOPIDFILE ]; then
-    ZOO_DATADIR=$(grep "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e 's/.*=//')
+if [ -z "$ZOOPIDFILE" ]; then
+    ZOO_DATADIR="$(grep "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e 's/.*=//')"
     if [ ! -d "$ZOO_DATADIR" ]; then
         mkdir -p "$ZOO_DATADIR"
     fi
     ZOOPIDFILE="$ZOO_DATADIR/zookeeper_server.pid"
 else
     # ensure it exists, otw stop will fail
-    mkdir -p $(dirname "$ZOOPIDFILE")
+    mkdir -p "$(dirname "$ZOOPIDFILE")"
 fi
 
 if [ ! -w "$ZOO_LOG_DIR" ] ; then
@@ -100,13 +100,13 @@ _ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.
 case $1 in
 start)
     echo  -n "Starting zookeeper ... "
-    if [ -f $ZOOPIDFILE ]; then
-      if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then
-         echo $command already running as process `cat $ZOOPIDFILE`. 
+    if [ -f "$ZOOPIDFILE" ]; then
+      if kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; then
+         echo $command already running as process `cat "$ZOOPIDFILE"`. 
          exit 0
       fi
     fi
-    nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+    nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
     -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
     if [ $? -eq 0 ]
     then
@@ -124,15 +124,15 @@ start)
     fi
     ;;
 start-foreground)
-    ZOO_CMD="exec $JAVA"
+    ZOO_CMD=(exec "$JAVA")
     if [ "${ZOO_NOEXEC}" != "" ]; then
-      ZOO_CMD="$JAVA"
+      ZOO_CMD=("$JAVA")
     fi
-    $ZOO_CMD "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+    "${ZOO_CMD[@]}" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
     -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG"
     ;;
 print-cmd)
-    echo "$JAVA -Dzookeeper.log.dir=\"${ZOO_LOG_DIR}\" -Dzookeeper.root.logger=\"${ZOO_LOG4J_PROP}\" -cp \"$CLASSPATH\" $JVMFLAGS $ZOOMAIN \"$ZOOCFG\" > \"$_ZOO_DAEMON_OUT\" 2>&1 < /dev/null"
+    echo "\"$JAVA\" -Dzookeeper.log.dir=\"${ZOO_LOG_DIR}\" -Dzookeeper.root.logger=\"${ZOO_LOG4J_PROP}\" -cp \"$CLASSPATH\" $JVMFLAGS $ZOOMAIN \"$ZOOCFG\" > \"$_ZOO_DAEMON_OUT\" 2>&1 < /dev/null"
     ;;
 stop)
     echo -n "Stopping zookeeper ... "
@@ -149,7 +149,7 @@ stop)
 upgrade)
     shift
     echo "upgrading the servers to 3.*"
-    $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+    "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
     -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.server.upgrade.UpgradeMain ${@}
     echo "Upgrading ... "
     ;;
@@ -161,7 +161,7 @@ restart)
     ;;
 status)
     # -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output
-    STAT=`$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+    STAT=`"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
              -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.client.FourLetterWordMain localhost \
              $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') srvr 2> /dev/null    \
           | grep Mode`