bin/veewee in veewee-0.2.3 vs bin/veewee in veewee-0.3.0.alpha1
- old
+ new
@@ -1,79 +1,22 @@
#!/usr/bin/env ruby
-
-require 'rubygems'
-require 'thor'
-require 'bundler'
-require 'virtualbox'
require 'veewee'
+env = Veewee::Environment.new
-#Setup some base variables to use
-veewee_dir= File.expand_path(File.join(File.dirname(__FILE__),".."))
-definition_dir= File.expand_path(File.join(".", "definitions"))
-lib_dir= File.expand_path(File.join(veewee_dir, "lib"))
-box_dir= File.expand_path(File.join(veewee_dir, "boxes"))
-template_dir=File.expand_path(File.join(veewee_dir, "templates"))
+begin
+ # Begin logging
+ env.ui.info("veewee") { "`veewee` invoked: #{ARGV.inspect}" }
-#vbox_dir=File.expand_path(File.join(veewee_dir, "tmp"))
-tmp_dir=File.expand_path(File.join(veewee_dir, "tmp"))
+ # Disable color if the proper argument was passed
+ shell = ARGV.include?("--no-color") ? Thor::Shell::Basic.new : Thor::Base.shell.new
-iso_dir=File.expand_path(File.join(veewee_dir, "iso"))
+ # Attach the UI
+ env.ui = ::Veewee::UI::Shell.new(env, shell)
+ env.load!
-#needs to be moved to the config files to be allowed override
-#ENV['VBOX_USER_HOME']=vbox_dir
+ # Start the CLI
+ ::Veewee::CLI.start(ARGV,:env => env)
-#Load Veewee::Session libraries
-Dir.glob(File.join(lib_dir, '**','*.rb')).each {|f|
- require f }
-
-#Initialize
-Veewee::Session.setenv({:veewee_dir => veewee_dir, :definition_dir => definition_dir,
- :template_dir => template_dir, :iso_dir => iso_dir, :box_dir => box_dir, :tmp_dir => tmp_dir})
-
-
-
-class VeeweeCLI < Thor
-
- desc "init [NAME] [TEMPLATE]", "initializes a box from a template"
- method_options :force => :boolean
- def init(boxname=nil, template=nil)
- if (boxname.nil?)
- puts "please provide a boxname"
- exit
- end
-
- puts "Init a new box #{boxname}, starting from template #{template}"
- Veewee::Session.define(boxname,template)
-
- end
-
- desc "templates", "list the template available"
- def templates
- Veewee::Session.list_templates
- end
-
- desc "build [NAME]", "build the box defined"
- method_options :force => :boolean
- def build(boxname)
- puts "Building box #{boxname}"
- Veewee::Session.build(boxname)
- end
-
- desc "export [NAME]", "export the box"
- method_options :force => :boolean
- def export(boxname)
- if (!boxname.nil?)
- Veewee::Session.export_box(boxname)
- end
- end
-
-end
-
-
-
-version=VirtualBox.version
-if (version.match(/^4./))
- VeeweeCLI.start
-else
- puts "veewee only supports VirtualBox 4.x"
+rescue Veewee::Error => e
+ puts "#{e}"
end