def make_tarball!(tar_path, builddir)
if self[:prefix]
self[:prefix] = self[:prefix][1..-1] if self[:prefix] =~ /^\//
@paths.each do |path|
if @root != "." and path.start_with?(@root)
path = path[@root.size .. -1]
end
if File.directory?(path)
path = "#{path}/" if path[-1,1] != "/"
dest = "#{builddir}/tarbuild/#{self[:prefix]}/#{path}"
else
dest = "#{builddir}/tarbuild/#{self[:prefix]}/#{File.dirname(path)}"
end
::FileUtils.mkdir_p(dest)
rsync = ["rsync", "-a", path, dest]
p rsync if $DEBUG
safesystem(*rsync)
end
if self[:prefix]
@paths = @paths.collect { |p| File.join("/", self[:prefix], p) }
end
::Dir.chdir("#{builddir}/tarbuild") do
safesystem("ls #{builddir}/tarbuild") if $DEBUG
tar(tar_path, ".")
end
else
tar(tar_path, paths)
end
safesystem(*["gzip", "-f", tar_path])
end