Class: GitoriousMuninPlugins::UsagePlugin
- Inherits:
-
Object
- Object
- GitoriousMuninPlugins::UsagePlugin
- Defined in:
- lib/gitorious-munin-plugins/usage_plugin.rb
Instance Method Summary collapse
- #display_install_status ⇒ Object
- #extract_plugins_from_spec(spec) ⇒ Object
- #fail_with_message(message) ⇒ Object
-
#initialize(known_plugins) ⇒ UsagePlugin
constructor
A new instance of UsagePlugin.
- #install_plugins(plugin_spec) ⇒ Object
- #run ⇒ Object
- #try_running(name) ⇒ Object
- #uninstall_plugins(plugin_spec) ⇒ Object
Constructor Details
#initialize(known_plugins) ⇒ UsagePlugin
Returns a new instance of UsagePlugin.
3 4 5 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 3 def initialize(known_plugins) @known_plugins = known_plugins end |
Instance Method Details
#display_install_status ⇒ Object
70 71 72 73 74 75 76 77 78 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 70 def display_install_status msg = [Term::ANSIColor.bold { "These plugins are available"} ] @known_plugins.each do |p| msg << "- #{p.description}" end msg << "" (msg.join("\n")) end |
#extract_plugins_from_spec(spec) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 62 def extract_plugins_from_spec(spec) if spec.first == "all" @known_plugins.map(&:name) else return spec end end |
#fail_with_message(message) ⇒ Object
80 81 82 83 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 80 def () puts exit 1 end |
#install_plugins(plugin_spec) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 34 def install_plugins(plugin_spec) plugins = extract_plugins_from_spec(plugin_spec) plugins.each do |p| if plugin = @known_plugins.detect {|_p| _p.named?(p)} plugin.install! else puts "Ignoring #{p}" end end end |
#run ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 7 def run = Trollop:: do version "#{GitoriousMuninPlugins::VERSION} (c) 2012 Gitorious AS." <<-EOS Munin plugins for Gitorious Usage: gitorious-munin-plugins [options] where [options] are: EOS opt :status, "List install status of plugins" opt :install, "Install PACKAGE1 PACKAGE2. Specify 'all' to install all plugins" opt :uninstall, "Uninstall PACKAGE1 PACKAGE2. Specify 'all' to uninstall all plugins " opt :try, "Try running PACKAGE" end if [:status_given] display_install_status elsif [:install_given] install_plugins(ARGV) elsif [:uninstall_given] uninstall_plugins(ARGV) elsif [:try_given] (ARGV[0] || "").split(",").each { |name| try_running(name) } end end |
#try_running(name) ⇒ Object
56 57 58 59 60 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 56 def try_running(name) plugin = Plugin.root.realpath + "#{name}.rb" abort("Unknown plugin #{name}, exiting. List valid plugins with -l.") if !plugin.exist? load(plugin) end |
#uninstall_plugins(plugin_spec) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/gitorious-munin-plugins/usage_plugin.rb', line 45 def uninstall_plugins(plugin_spec) plugins = extract_plugins_from_spec(plugin_spec) plugins.each do |p| if plugin = @known_plugins.detect {|_p| _p.named?(p)} plugin.uninstall! else puts "Ignoring #{p}" end end end |