module ZencoderCLI::Command class Plugins < Base provides "plugins", { "plugins:list" => "Lists installed plugins", "plugins:install" => "Install a plugin via URL", "plugins:uninstall" => "Uninstall a plugin" } class << self def list(args, global_options, command_options) if ZencoderCLI::Plugin.list.any? puts "The following plugins are installed:" ZencoderCLI::Plugin.list.each do |plugin| display "* #{plugin}" end else display "There are no plugins installed." end end def install(args, global_options, command_options) plugin = ZencoderCLI::Plugin.new(args.shift) if plugin.install begin ZencoderCLI::Plugin.load_plugin(plugin.name) rescue Exception => e installation_failed(plugin, e.message) end display "#{plugin} installed." else error "Could not install #{plugin}. Please check the URL and try again." end end def uninstall(args, global_options, command_options) plugin = ZencoderCLI::Plugin.new(args.shift) plugin.uninstall display "#{plugin} uninstalled." end end end end