Make possible to symlink boxes/temp

This commit is contained in:
Laurent Vallar 2013-04-30 15:45:27 +02:00
parent f27bbbb599
commit c5a316f1ae

View file

@ -30,22 +30,23 @@ class BuildGenericBoxTask < ::Rake::TaskLib
exit 1 exit 1
end end
if Dir.exists?('boxes/temp') if Dir.entries('boxes/temp').size > 2
puts 'There is a partially built box under ' + puts 'There is a partially built box under ' +
File.expand_path('./boxes/temp') + File.expand_path('./boxes/temp') +
', please remove it before building a new box' ', please remove it before building a new box'
exit 1 exit 1
end end
pwd = Dir.pwd
sh 'mkdir -p boxes/temp/' sh 'mkdir -p boxes/temp/'
Dir.chdir 'boxes/temp' do Dir.chdir 'boxes/temp' do
sh "sudo ../#{@distrib}/download #{@arch} #{@release}" sh "sudo #{pwd}/boxes/#{@distrib}/download #{@arch} #{@release}"
[ :puppet, :chef, :babushka ].each do |cfg_engine| [ :puppet, :chef, :babushka ].each do |cfg_engine|
next unless instance_variable_get :"@install_#{cfg_engine}" next unless instance_variable_get :"@install_#{cfg_engine}"
script_name = "install-#{cfg_engine}" script_name = "install-#{cfg_engine}"
install_path = File.join '..', @distrib, script_name install_path = File.join pwd, 'boxes', @distrib, script_name
unless File.readable? install_path unless File.readable? install_path
install_path = File.join '..', 'common', script_name install_path = File.join pwd, 'boxes', 'common', script_name
end end
if File.readable? install_path if File.readable? install_path
sh "sudo #{install_path}" sh "sudo #{install_path}"
@ -57,8 +58,8 @@ class BuildGenericBoxTask < ::Rake::TaskLib
sh 'sudo tar --numeric-owner -czf rootfs.tar.gz ./rootfs/*' sh 'sudo tar --numeric-owner -czf rootfs.tar.gz ./rootfs/*'
sh 'sudo rm -rf rootfs' sh 'sudo rm -rf rootfs'
sh "sudo chown #{ENV['USER']}:#{ENV['USER']} rootfs.tar.gz" sh "sudo chown #{ENV['USER']}:#{ENV['USER']} rootfs.tar.gz"
sh "cp ../#{@distrib}/lxc-template ." sh "cp #{pwd}/boxes/#{@distrib}/lxc-template ."
metadata = File.read("../#{@distrib}/metadata.json.template") metadata = File.read("#{pwd}/boxes/#{@distrib}/metadata.json.template")
metadata.gsub!('ARCH', @arch) metadata.gsub!('ARCH', @arch)
metadata.gsub!('RELEASE', @release) metadata.gsub!('RELEASE', @release)
File.open('metadata.json', 'w') { |f| f.print metadata } File.open('metadata.json', 'w') { |f| f.print metadata }