Rakefile in veewee-0.2.3 vs Rakefile in veewee-0.3.0.alpha1

- old
+ new

@@ -1,97 +1,63 @@ require 'rubygems' require 'bundler' require 'bundler/setup' +require 'veewee' Bundler::GemHelper.install_tasks -#Setup some base variables to use -veewee_dir = "." -lib_dir = File.expand_path(File.join(veewee_dir, "lib")) -box_dir = File.expand_path(File.join(veewee_dir, "boxes")) -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")) -definition_dir = File.expand_path(File.join(veewee_dir, "definitions")) -template_dir = File.expand_path(File.join(veewee_dir, "templates")) +desc 'Default: run tests' +task :default => :test +require 'rake/testtask' +Bundler::GemHelper.install_tasks -#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 +desc 'Tests not requiring an real box' +Rake::TestTask.new do |t| + t.libs << "test" + t.pattern = 'test/**/*_test.rb' 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) +desc 'Tests requiring an real box' +Rake::TestTask.new do |t| + t.name="realtest" + t.libs << "test" + t.pattern = 'test/**/*_realtest.rb' end -desc 'Undefine box' -task :undefine, [:boxname] do |t,args| - if args.to_hash.size!=1 - puts "needs one arguments: rake undefine[\"yourname\"]" - exit +desc 'Verify ISO' +task :iso, [:box_name] do |t,args| + require 'net/http' + #if args.to_hash.size!=1 + #puts "needs one arguments: rake iso [\"yourname\"]" + #exit + #end + Dir.glob("templates/*").each do |name| + definition_name=File.basename(name) + definition=Veewee::Environment.new(:cwd => ".",:definition_dir => "templates",:definition_path => "templates").get_definition(definition_name) + next if definition.iso_src.nil? || definition.iso_src=="" + begin + url=definition.iso_src + found=false + response = nil + while found==false + uri=URI.parse(url) + Net::HTTP.start(uri.host,uri.port) {|http| + response = http.head(uri.path) + } + unless response['location'].nil? + #puts "Redirecting to "+response['location'] + url=response['location'] + else + found=true + end + end + length=response['content-length'] + if length.to_i < 10000 + puts definition.iso_src + p response['content-type'] + puts uri.host,uri.port, uri.path,response.code + end + rescue Exception => ex + puts "Error"+ex.to_s+definition.iso_src + end 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