Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

123 lines (103 sloc) 3.079 kb
require 'rubygems'
require 'bundler'
require 'bundler/setup'
Bundler::GemHelper.install_tasks
#We set this in the ENV file
#ENV['GEM_PATH']=File.join(File.dirname(__FILE__),"gems")
#ENV['GEM_HOME']=File.join(File.dirname(__FILE__),"gems")
def check_environment
begin
require 'vagrant'
rescue LoadError
puts "you need to install dependencies:"
puts "gem install vagrant"
exit
end
begin
require 'net/ssh'
require 'virtualbox'
require 'webrick'
require 'popen4'
rescue LoadError
puts "hmm you had vagrant installed but are missing the net-ssh or virtualbox gem"
puts "gem install virtualbox net-ssh POpen4"
exit
end
end
#See if all gems and so are installed
check_environment
#Setup some base variables to use
veewee_dir= File.dirname(__FILE__)
definition_dir= File.expand_path(File.join(veewee_dir, "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"))
vbox_dir=File.expand_path(File.join(veewee_dir, "tmp"))
tmp_dir=File.expand_path(File.join(veewee_dir, "tmp"))
iso_dir=File.expand_path(File.join(veewee_dir, "iso"))
#needs to be moved to the config files to be allowed override
ENV['VBOX_USER_HOME']=vbox_dir
#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})
desc 'Default: list templates'
task :default => [:templates]
desc 'List templates'
task :templates do
Veewee::Session.list_templates
end
desc 'Define box'
task :define, [:boxname,:template_name] do |t,args|
if args.to_hash.size!=2
puts "needs two arguments: rake define['boxname','template_name']"
exit
end
Veewee::Session.define(args.boxname,args.template_name)
end
desc 'Undefine box'
task :undefine, [:boxname] do |t,args|
if args.to_hash.size!=1
puts "needs one arguments: rake undefine[\"yourname\"]"
exit
end
Veewee::Session.undefine(args.boxname)
end
desc 'List Definitions'
task :definitions do
Veewee::Session.list_definitions
end
desc 'Build box'
task :build, [:boxname] do |t,args|
if args.to_hash.size!=1
puts "needs one arguments: rake build['boxname']"
exit
end
Veewee::Session.build(args.boxname)
end
desc 'List boxes'
task :boxes do
Veewee::Session.list_boxes
end
desc 'Export box'
task :export, [:boxname] do |t,args|
if args.to_hash.size!=1
puts "needs one arguments: rake export['boxname']"
exit
end
Veewee::Session.export_box(args.boxname)
end
desc 'Remove box'
task :remove_box, [:boxname] do |t,args|
Veewee::Session.remove_box(args.boxname)
end
desc 'List ostypes available'
task :list_ostypes do |t,args|
Veewee::Session.list_ostypes
end
desc 'Clean all unfinished builds'
task :clean do
Veewee::Session.clean
end
Jump to Line
Something went wrong with that request. Please try again.