def stage( keys )
keys = keys.rekey(:to_s)
name = keys['name'] || File.basename(Dir.pwd)
files = keys['files'] || '**/*'
rules = keys['rules'] || ''
source = keys['source'] || Dir.pwd
vars = keys['vars'] || {}
raise ArgumentError, "missing argument -- name" unless name
files = [files].flatten.compact
work_folder = File.join(Dir.tmpdir, $0.gsub(/W/,''), 'stage')
stage_folder ||= File.join(work_folder, name)
if FileTest.directory?(work_folder)
rm_r(work_folder)
end
mkdir_p(work_folder)
files = Dir.chdir(source) do
Dir.multiglob_recurse(*files)
end
trans = transfer_rules(source, rules, vars)
transfer_files(source, files, trans, stage_folder)
return stage_folder
end