mirror of
https://github.com/elastic/logstash.git
synced 2025-04-22 21:57:26 -04:00
* Enable SpaceARoundBlockParameters * Enable SpaceAroundEqualsInParameterDefault * Enable SpaceAroundKeyword * Enable SpaceAroundOperators * Enable SpaceBeforeBlockBraces, which yields no changes
91 lines
3.1 KiB
Ruby
91 lines
3.1 KiB
Ruby
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
# license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright
|
|
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
# the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# bootstrap.rb contains the minimal code to be able to launch Bundler to eventually be able
|
|
# to retrieve the core code in the logstash-core gem which can live under different paths
|
|
# depending on the launch context (local dev, packaged, etc)
|
|
require_relative "bundler"
|
|
require_relative "rubygems"
|
|
require "pathname"
|
|
|
|
module LogStash
|
|
module Environment
|
|
extend self
|
|
|
|
# also set the env LOGSTASH_HOME
|
|
LOGSTASH_HOME = ENV["LOGSTASH_HOME"] = ::File.expand_path(::File.join(__FILE__, "..", "..", ".."))
|
|
|
|
BUNDLE_DIR = ::File.join(LOGSTASH_HOME, "vendor", "bundle")
|
|
GEMFILE_PATH = ::File.join(LOGSTASH_HOME, "Gemfile")
|
|
LOCAL_GEM_PATH = ::File.join(LOGSTASH_HOME, 'vendor', 'local_gems')
|
|
CACHE_PATH = ::File.join(LOGSTASH_HOME, "vendor", "cache")
|
|
LOCKFILE = Pathname.new(::File.join(LOGSTASH_HOME, "Gemfile.lock"))
|
|
GEMFILE = Pathname.new(::File.join(LOGSTASH_HOME, "Gemfile"))
|
|
|
|
# @return [String] the ruby version string bundler uses to craft its gem path
|
|
def gem_ruby_version
|
|
RbConfig::CONFIG["ruby_version"]
|
|
end
|
|
|
|
# @return [String] major.minor ruby version, ex 1.9
|
|
def ruby_abi_version
|
|
RUBY_VERSION[/(\d+\.\d+)(\.\d+)*/, 1]
|
|
end
|
|
|
|
# @return [String] jruby, ruby, rbx, ...
|
|
def ruby_engine
|
|
RUBY_ENGINE
|
|
end
|
|
|
|
def oss_only?
|
|
return true if ENV['OSS'] == "true"
|
|
|
|
!File.exist?(File.join(LogStash::Environment::LOGSTASH_HOME, "x-pack"))
|
|
end
|
|
|
|
def win_platform?
|
|
::Gem.win_platform?
|
|
end
|
|
|
|
def logstash_gem_home
|
|
::File.join(BUNDLE_DIR, ruby_engine, gem_ruby_version)
|
|
end
|
|
|
|
def vendor_path(path)
|
|
return ::File.join(LOGSTASH_HOME, "vendor", path)
|
|
end
|
|
|
|
def pattern_path(path)
|
|
return ::File.join(LOGSTASH_HOME, "patterns", path)
|
|
end
|
|
end
|
|
end
|
|
|
|
# when launched as a script, not require'd, (currently from bin/logstash)
|
|
if $0 == __FILE__
|
|
bundler_options = {:without => [:build, :development]}
|
|
## Check for dev flags - this needs to be done before the runner is invoked to set bundler options
|
|
if ARGV.include?("--enable-local-plugin-development")
|
|
bundler_options[:allow_gemfile_changes] = true
|
|
end
|
|
LogStash::Bundler.setup!(bundler_options)
|
|
require_relative "patches/jar_dependencies"
|
|
|
|
require 'logstash/runner'
|
|
exit_status = LogStash::Runner.run("bin/logstash", ARGV)
|
|
exit(exit_status || 0)
|
|
end
|