shared = 'shared'
elementos_externos = {
'public/images' => {'_app' => 'svn://server/rails_app/public/images/_gw'},
'public/javascripts' => {'_app' => 'svn://server/paxx/public/gooworks/rails_app/public/javascripts/_gw'},
'public/stylesheets' => {'_app' => 'svn://server/rails_app/public/stylesheets/_gw'},
'vendor' => {'rails' => 'http://dev.rubyonrails.com/svn/rails/trunk'}
}
if ARGV[0].nil?
puts "Especifica el directorio en el que quieres trabajar: #{$0} <directorio>"
exit
end
max_dir_size = 0; max_ext_size = 0
elementos_externos.each do |dir, extlist|
max_dir_size = dir.size if dir.size > max_dir_size
extlist.each do |ext, url|
max_ext_size = ext.size if ext.size > max_ext_size
end
end
script_dir = Dir.pwd
tmp_file = "#{script_dir}/_svnext_temp_file"
ARGV.each do |wd|
if FileTest.directory?(wd) && wd.chomp('/') != 'gooworks'
puts "".ljust(80, '=')
puts "Trabajando en #{wd}:"
Dir.chdir(wd)
elementos_externos.sort.each do |dir, extlist|
file = File.open(tmp_file, 'w') if extlist.size > 1
extlist.sort.each do |ext, url|
if file.nil?
out = %x[svn ps svn:externals '#{ext} #{url}' #{dir}]
else
file.puts "#{ext} #{url}"
out = 'Escribiendo archivo temporal...'
end
puts "Configurando #{ext.ljust(max_ext_size)}: #{out}"
end
unless file.nil?
file.close
out = %x[svn ps svn:externals -F #{tmp_file} #{dir}]
puts "Configurado (#{extlist.size} elementos): #{out}"
File.delete(tmp_file)
end
end
Dir.chdir(script_dir)
end
end