metasploit-framework/lib/msf/base/simple/framework/module_paths.rb

54 lines
1.7 KiB
Ruby
Raw Normal View History

# -*- coding: binary -*-
module Msf
2013-08-30 21:28:33 +00:00
module Simple
module Framework
module ModulePaths
# Initialize the module paths
#
# @return [void]
def init_module_paths(opts={})
# Ensure the module cache is accurate
self.modules.refresh_cache_from_database
add_engine_module_paths(Rails.application, opts)
Rails.application.railties.engines.each do |engine|
add_engine_module_paths(engine, opts)
2013-08-30 21:28:33 +00:00
end
2013-08-30 21:28:33 +00:00
# Initialize the user module search path
if (Msf::Config.user_module_directory)
self.modules.add_module_path(Msf::Config.user_module_directory, opts)
end
2013-08-30 21:28:33 +00:00
# If additional module paths have been defined globally, then load them.
# They should be separated by semi-colons.
if self.datastore['MsfModulePaths']
self.datastore['MsfModulePaths'].split(";").each { |path|
self.modules.add_module_path(path, opts)
}
end
end
private
# Add directories `engine.paths['modules']` from `engine`.
#
# @param engine [Rails::Engine] a rails engine or application
# @param options [Hash] options for {Msf::ModuleManager::ModulePaths#add_module_paths}
# @return [void]
def add_engine_module_paths(engine, options={})
modules_paths = engine.paths['modules']
if modules_paths
modules_directories = modules_paths.existent_directories
modules_directories.each do |modules_directory|
modules.add_module_path(modules_directory, options)
end
end
end
2013-08-30 21:28:33 +00:00
end
end
end
end