metasploit-framework/lib/msfenv.rb

34 lines
1.1 KiB
Ruby

#
# Shim load the bundled gem cache if the environment is set
#
_msf_gemcache = false
# If the bundle option is explicitly set, load the gemcache
unless ENV['MSF_BUNDLE_GEMS'].to_s.downcase =~ /^[nf0]/ # NO/FALSE/0
require 'msf/env/gemcache'
_msf_gemcache = true
else
# If the bundle option is empty and this looks like an installer environment
# also load the gem cache (but probably not the binary gem cache)
if ENV['MSF_BUNDLE_GEMS'].to_s.length == 0 and
::File.exists?( File.join( File.dirname(__FILE__), "..", "..", "properties.ini") ) and
::File.directory?( File.join( File.dirname(__FILE__), "..", "..", "apps", "pro") )
require 'msf/env/gemcache'
_msf_gemcache = true
end
end
if not _msf_gemcache
# The user is running outside of the installer environment and not using
# our bundled gemset, so we fallback on bundler instead
ENV['BUNDLE_GEMFILE'] ||= ::File.expand_path(::File.join(::File.dirname(__FILE__), "..", "Gemfile"))
begin
require 'bundler/setup'
rescue ::LoadError
$stderr.puts "[*] Metasploit requires the Bundler gem to be installed in development mode"
$stderr.puts " $ rvmsudo gem install bundler"
exit(0)
end
end