scripts fail when paths contain whitespace

Patch by Amichai Rothman; Reviewed by eevans for CASSANDRA-5338
This commit is contained in:
Eric Evans 2013-07-08 14:20:40 -05:00
parent f8c072e974
commit 909b2ed1a9
11 changed files with 103 additions and 103 deletions

View File

@ -71,7 +71,7 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
"$HOME/.cassandra.in.sh" \
"`dirname $0`/cassandra.in.sh"; do
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
@ -120,10 +120,10 @@ esac
launch_service()
{
pidpath=$1
foreground=$2
props=$3
class=$4
pidpath="$1"
foreground="$2"
props="$3"
class="$4"
cassandra_parms="-Dlog4j.configuration=log4j-server.properties -Dlog4j.defaultInitOverride=true"
if [ "x$pidpath" != "x" ]; then

View File

@ -21,29 +21,29 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
$JAVA -ea -cp $CLASSPATH -Xmx256M \
"$JAVA" -ea -cp "$CLASSPATH" -Xmx256M \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.cli.CliMain "$@"

View File

@ -19,24 +19,24 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
for include in /usr/share/cassandra/cassandra.in.sh \
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CASSANDRA_CONF -o -z $CLASSPATH ]; then
if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then
echo "You must set the CASSANDRA_CONF and CLASSPATH vars" >&2
exit 1
fi
@ -44,12 +44,12 @@ fi
# Special-case path variables.
case "`uname`" in
CYGWIN*)
CLASSPATH=`cygpath -p -w "$CLASSPATH"`
CASSANDRA_CONF=`cygpath -p -w "$CASSANDRA_CONF"`
CLASSPATH="`cygpath -p -w "$CLASSPATH"`"
CASSANDRA_CONF="`cygpath -p -w "$CASSANDRA_CONF"`"
;;
esac
$JAVA -cp $CLASSPATH \
"$JAVA" -cp "$CLASSPATH" \
-Xmx32m \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.Shuffle $@

View File

@ -15,27 +15,27 @@
# limitations under the License.
if [ "x$CASSANDRA_HOME" = "x" ]; then
CASSANDRA_HOME=`dirname $0`/..
CASSANDRA_HOME="`dirname "$0"`/.."
fi
# The directory where Cassandra's configs live (required)
if [ "x$CASSANDRA_CONF" = "x" ]; then
CASSANDRA_CONF=$CASSANDRA_HOME/conf
CASSANDRA_CONF="$CASSANDRA_HOME/conf"
fi
# This can be the path to a jar file, or a directory containing the
# compiled classes. NOTE: This isn't needed by the startup script,
# it's just used here in constructing the classpath.
cassandra_bin=$CASSANDRA_HOME/build/classes/main
cassandra_bin=$cassandra_bin:$CASSANDRA_HOME/build/classes/thrift
#cassandra_bin=$cassandra_home/build/cassandra.jar
cassandra_bin="$CASSANDRA_HOME/build/classes/main"
cassandra_bin="$cassandra_bin:$CASSANDRA_HOME/build/classes/thrift"
#cassandra_bin="$cassandra_home/build/cassandra.jar"
# JAVA_HOME can optionally be set here
#JAVA_HOME=/usr/local/jdk6
# The java classpath (required)
CLASSPATH=$CASSANDRA_CONF:$cassandra_bin
CLASSPATH="$CASSANDRA_CONF:$cassandra_bin"
for jar in $CASSANDRA_HOME/lib/*.jar; do
CLASSPATH=$CLASSPATH:$jar
for jar in "$CASSANDRA_HOME"/lib/*.jar; do
CLASSPATH="$CLASSPATH:$jar"
done

View File

@ -51,8 +51,8 @@ fi
# Special-case path variables.
case "`uname`" in
CYGWIN*)
CLASSPATH=`cygpath -p -w "$CLASSPATH"`
CASSANDRA_CONF=`cygpath -p -w "$CASSANDRA_CONF"`
CLASSPATH="`cygpath -p -w "$CLASSPATH"`"
CASSANDRA_CONF="`cygpath -p -w "$CASSANDRA_CONF"`"
;;
esac

View File

@ -21,29 +21,29 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
$JAVA -cp $CLASSPATH -Dstorage-config=$CASSANDRA_CONF \
"$JAVA" -cp "$CLASSPATH" -Dstorage-config="$CASSANDRA_CONF" \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.SSTableImport "$@"

View File

@ -15,9 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
if [ `basename $0` = 'nodeprobe' ]; then
if [ "`basename "$0"`" = 'nodeprobe' ]; then
echo "***************************************************************" >&2
echo "WARNING: $0 is obsolete, use `dirname $0`/nodetool instead" >&2
echo "WARNING: $0 is obsolete, use `dirname "$0"`/nodetool instead" >&2
echo "***************************************************************" >&2
fi
@ -25,24 +25,24 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
for include in /usr/share/cassandra/cassandra.in.sh \
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CASSANDRA_CONF -o -z $CLASSPATH ]; then
if [ -z "$CASSANDRA_CONF" -o -z "$CLASSPATH" ]; then
echo "You must set the CASSANDRA_CONF and CLASSPATH vars" >&2
exit 1
fi
@ -50,15 +50,15 @@ fi
# Special-case path variables.
case "`uname`" in
CYGWIN*)
CLASSPATH=`cygpath -p -w "$CLASSPATH"`
CASSANDRA_CONF=`cygpath -p -w "$CASSANDRA_CONF"`
CLASSPATH="`cygpath -p -w "$CLASSPATH"`"
CASSANDRA_CONF="`cygpath -p -w "$CASSANDRA_CONF"`"
;;
esac
$JAVA -cp $CLASSPATH \
"$JAVA" -cp "$CLASSPATH" \
-Xmx32m \
-Dlog4j.configuration=log4j-tools.properties \
-Dstorage-config=$CASSANDRA_CONF \
-Dstorage-config="$CASSANDRA_CONF" \
org.apache.cassandra.tools.NodeCmd $@
# vi:ai sw=4 ts=4 tw=0 et

View File

@ -21,30 +21,30 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
$JAVA -cp $CLASSPATH -Dstorage-config=$CASSANDRA_CONF \
"$JAVA" -cp "$CLASSPATH" -Dstorage-config="$CASSANDRA_CONF" \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.SSTableExport "$@"

View File

@ -21,34 +21,34 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
if [ $# -eq "0" ]; then
echo "Usage: `basename $0` <sstable>"
echo "Usage: `basename "$0"` <sstable>"
exit 2
fi
$JAVA -cp $CLASSPATH -Dstorage-config=$CASSANDRA_CONF \
"$JAVA" -cp "$CLASSPATH" -Dstorage-config="$CASSANDRA_CONF" \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.SSTableExport "$@" -e

View File

@ -21,29 +21,29 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
$JAVA -ea -cp $CLASSPATH -Xmx256M \
"$JAVA" -ea -cp "$CLASSPATH" -Xmx256M \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.BulkLoader "$@"

View File

@ -21,24 +21,24 @@ if [ "x$CASSANDRA_INCLUDE" = "x" ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
`dirname $0`/cassandra.in.sh; do
if [ -r $include ]; then
. $include
"`dirname "$0"`/cassandra.in.sh"; do
if [ -r "$include" ]; then
. "$include"
break
fi
done
elif [ -r $CASSANDRA_INCLUDE ]; then
. $CASSANDRA_INCLUDE
elif [ -r "$CASSANDRA_INCLUDE" ]; then
. "$CASSANDRA_INCLUDE"
fi
# Use JAVA_HOME if set, otherwise look for java in PATH
if [ -x $JAVA_HOME/bin/java ]; then
JAVA=$JAVA_HOME/bin/java
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA=`which java`
JAVA="`which java`"
fi
if [ -z $CLASSPATH ]; then
if [ -z "$CLASSPATH" ]; then
echo "You must set the CLASSPATH var" >&2
exit 1
fi
@ -47,7 +47,7 @@ if [ "x$MAX_HEAP_SIZE" = "x" ]; then
MAX_HEAP_SIZE="256M"
fi
$JAVA -ea -cp $CLASSPATH -Xmx$MAX_HEAP_SIZE \
"$JAVA" -ea -cp "$CLASSPATH" -Xmx$MAX_HEAP_SIZE \
-Dlog4j.configuration=log4j-tools.properties \
org.apache.cassandra.tools.StandaloneScrubber "$@"