# Dane wdroenia deploy.rb.

task :update_code, :roles => [:app, :db, :web] do
  on_rollback { delete release_path, :recursive => true }

  # W tym miejscu bdzie przechowywana lokalna kopia kodu.
  temp_dest = "to_deploy"
  
  # Nazwa pliku TAR z naszym kodem.
  tgz = "to_deploy.tgz"

  # Eksport biecego kodu do powyszego foldera.
  system("svn export -q #{configuration.repository} #{temp_dest}")

  # Utworzenie pliku TAR i wysanie go do serwera.
  system("tar -C #{temp_dest} -czf #{tgz} .")
  put(File.read(tgz), tgz)

  # Rozpakowanie kodu na serwerze.
  run <<-CMD
  mkdir -p  #{release_path}             &&
  tar -C    #{release_path} -xzf #{tgz} 
  CMD

  # Utworzenie dowiza symbolicznych wspdzielonych cieek do katalogu wydania.
  run <<-CMD
    rm -rf #{release_path}/log #{release_path}/public/system    &&
    ln -nfs #{shared_path}/log #{release_path}/log              &&
    ln -nfs #{shared_path}/system #{release_path}/public/system
  CMD

  # Wyczyszczenie archiww.
  run "rm -f #{tgz}"
  system("rm -rf #{temp_dest} #{tgz}")
end
