Method: MGit::PluginManager.setup

Defined in:
lib/m-git/plugin_manager.rb

.setupObject

  1. 先加载本地源码插件

  2. 搜索加载gem插件

  3. 处理加载注入的插件



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/m-git/plugin_manager.rb', line 10

def self.setup
  lib_dir = File.dirname(__FILE__)
  plugins_dir = File.join(File.dirname(File.dirname(lib_dir)), 'plugins')
  load_local_plugin_dir('mgit', plugins_dir)
  load_local_plugin_dir('m-git', plugins_dir)
  load_gem_plugins('mgit')
  load_gem_plugins('m-git')

  inject_flag = '--inject='.freeze
  inject_arg = ::ARGV.find { |arg| arg.start_with?(inject_flag) }
  if inject_arg
    ::ARGV.delete(inject_arg)
    inject_file = inject_arg[inject_flag.length..-1]
    if !inject_file.start_with?('~') && !inject_file.start_with?('/')
      inject_file = File.join(Dir.pwd, inject_file)
    end
    inject_file = File.expand_path(inject_file)
    if File.exist?(inject_file)
      if File.file?(inject_file)
        require inject_file
      elsif File.directory?(inject_file)
        load_local_plugins('mgit', inject_file)
        load_local_plugins('m-git', inject_file)
      end
    end
  end
end