Sha256: 32a834fc181c3363acb6b0e8a17a6a9e20830177cd16a6ef2f3e86578384fee2

Contents?: true

Size: 1.49 KB

Versions: 2

Compression:

Stored size: 1.49 KB

Contents

require 'optparse'

module Veewee
  module Command
    module Vagrant
      class Define < ::Vagrant::Command::Base
        def execute
          options = {}

          opts = OptionParser.new do |opts|
            opts.banner = "Define a new basebox based on a template"
            opts.separator ""
            opts.separator "Usage: vagrant basebox define <boxname> <template>"

            opts.on("-d", "--debug", "enable debugging") do |d|
              options['debug'] = d
            end

            opts.on("-f", "--force", "force overwrite") do |f|
              options['force'] = f
            end

          end

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

          begin
            venv=Veewee::Environment.new(options)
            venv.ui=@env.ui
            definition_name=argv[0]
            template_name=argv[1]
            venv.definitions.define(definition_name,template_name,options)
            venv.ui.info "The basebox '#{definition_name}' has been succesfully created from the template '#{template_name}'"
            venv.ui.info "You can now edit the definition files stored in definitions/#{definition_name} or build the box with:"
            venv.ui.info "vagrant basebox build '#{definition_name}'"
          rescue Veewee::Error => ex
            venv.ui.error ex
            exit -1
          end

        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
veewee-0.3.0.alpha6 lib/veewee/command/vagrant/define.rb
veewee-0.3.0.alpha5 lib/veewee/command/vagrant/define.rb