Sha256: c9e2eaac051e530d0f50ef177836b0387975c709910ed9d8ced3d252fc023374

Contents?: true

Size: 1.81 KB

Versions: 8

Compression:

Stored size: 1.81 KB

Contents

require 'optparse'

require_relative "base"

module VagrantPlugins
  module CommandPlugin
    module Command
      class Install < Base
        def execute
          options = {}

          opts = OptionParser.new do |o|
            o.banner = "Usage: vagrant plugin install <name> [-h]"
            o.separator ""

            o.on("--entry-point NAME", String,
                 "The name of the entry point file for loading the plugin.") do |entry_point|
              options[:entry_point] = entry_point
            end

            o.on("--plugin-prerelease",
                 "Allow prerelease versions of this plugin.") do |plugin_prerelease|
              options[:plugin_prerelease] = plugin_prerelease
            end

            o.on("--plugin-source PLUGIN_SOURCE", String,
                 "Add a RubyGems repository source") do |plugin_source|
              options[:plugin_sources] ||= []
              options[:plugin_sources] << plugin_source
            end

            o.on("--plugin-version PLUGIN_VERSION", String,
                 "Install a specific version of the plugin") do |plugin_version|
              options[:plugin_version] = plugin_version
            end
          end

          # Parse the options
          argv = parse_options(opts)
          return if !argv
          raise Vagrant::Errors::CLIInvalidUsage, :help => opts.help.chomp if argv.length < 1

          # Install the gem
          action(Action.action_install, {
            :plugin_entry_point => options[:entry_point],
            :plugin_prerelease  => options[:plugin_prerelease],
            :plugin_version     => options[:plugin_version],
            :plugin_sources     => options[:plugin_sources],
            :plugin_name        => argv[0]
          })

          # Success, exit status 0
          0
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
vagrant-shell-0.2.9 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/plugins/commands/plugin/command/install.rb
tnargav-1.2.3 plugins/commands/plugin/command/install.rb
vagrant-shell-0.2.8 demo/templates/vendor/bundle/ruby/1.9.1/gems/tnargav-1.2.2/plugins/commands/plugin/command/install.rb
vagrant-shell-0.2.6 vendor/bundle/gems/tnargav-1.2.2/plugins/commands/plugin/command/install.rb
vagrant-shell-0.2.5 vendor/bundle/gems/tnargav-1.2.2/plugins/commands/plugin/command/install.rb
tnargav-1.2.2 plugins/commands/plugin/command/install.rb
vagrantup-1.1.3 plugins/commands/plugin/command/install.rb
vagrantup-1.1.4 plugins/commands/plugin/command/install.rb