mirror of
https://github.com/elastic/logstash.git
synced 2025-04-20 04:37:18 -04:00
99 lines
No EOL
2.7 KiB
Bash
Executable file
99 lines
No EOL
2.7 KiB
Bash
Executable file
basedir=$(cd `dirname $0`/..; pwd)
|
|
|
|
setup_ruby() {
|
|
export RUBYLIB="${basedir}/lib"
|
|
|
|
# Verify ruby works
|
|
if ! ruby -e 'puts "HURRAY"' 2> /dev/null | grep -q "HURRAY" ; then
|
|
echo "No ruby program found. Cannot start."
|
|
exit 1
|
|
fi
|
|
|
|
# set $RUBY and $RUBYVER
|
|
eval $(ruby -rrbconfig -e 'puts "RUBYVER=#{RbConfig::CONFIG["ruby_version"]}"; puts "RUBY=#{RUBY_ENGINE}"')
|
|
|
|
RUBYCMD="ruby"
|
|
VENDORED_JRUBY=
|
|
|
|
export GEM_HOME="${basedir}/vendor/bundle/${RUBY}/${RUBYVER}"
|
|
export GEM_PATH=
|
|
}
|
|
|
|
setup_java() {
|
|
if [ -z "$JAVACMD" ] ; then
|
|
if [ -n "$JAVA_HOME" ] ; then
|
|
JAVACMD="$JAVA_HOME/bin/java"
|
|
else
|
|
JAVACMD="java"
|
|
fi
|
|
fi
|
|
|
|
# Resolve full path to the java command.
|
|
if [ ! -f "$JAVACMD" ] ; then
|
|
JAVACMD=$(which $JAVACMD 2>/dev/null)
|
|
fi
|
|
|
|
if [ ! -x "$JAVACMD" ] ; then
|
|
echo "Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$(basename $JAVACMD)" = "drip" ] ; then
|
|
export DRIP_INIT_CLASS="org.jruby.main.DripMain"
|
|
export DRIP_INIT=
|
|
fi
|
|
|
|
JAVA_OPTS="$JAVA_OPTS -Xmx${LS_HEAP_SIZE}"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
|
|
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
|
|
|
|
JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
|
|
|
|
if [ ! -z "$LS_USE_GC_LOGGING" ] ; then
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintClassHistogram"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution"
|
|
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime"
|
|
JAVA_OPTS="$JAVA_OPTS -Xloggc:./logstash-gc.log"
|
|
echo "Writing garbage collection logs to ./logstash-gc.log"
|
|
fi
|
|
|
|
export JAVACMD
|
|
export JAVA_OPTS
|
|
}
|
|
|
|
setup_vendored_jruby() {
|
|
RUBYVER=1.9
|
|
RUBY=jruby
|
|
|
|
JRUBY_JAR=$(ls "${basedir}"/vendor/jar/jruby-complete-*.jar)
|
|
VENDORED_JRUBY=1
|
|
|
|
export RUBYLIB="${basedir}/lib"
|
|
export GEM_HOME="${basedir}/vendor/bundle/${RUBY}/${RUBYVER}"
|
|
export GEM_PATH=
|
|
}
|
|
|
|
setup() {
|
|
setup_java
|
|
if [ -z "$USE_JRUBY" -a \( -d "$basedir/.git" -o ! -z "$USE_RUBY" \) ] ; then
|
|
setup_ruby
|
|
else
|
|
setup_vendored_jruby
|
|
fi
|
|
}
|
|
|
|
install_deps() {
|
|
if [ -f "$basedir/logstash.gemspec" ] ; then
|
|
if [ -z "$VENDORED_JRUBY" ] ; then
|
|
exec "${RUBYCMD}" "${basedir}/gembag.rb" "${basedir}/logstash.gemspec" "$@"
|
|
else
|
|
exec "${JAVACMD}" $JAVA_OPTS "-jar" "$JRUBY_JAR" "${basedir}/gembag.rb" "${basedir}/logstash.gemspec" "$@"
|
|
fi
|
|
else
|
|
echo "Cannot install dependencies; missing logstash.gemspec. This 'deps' command only works from a logstash git clone."
|
|
fi
|
|
} |