Statische Verzeichnisse nach Deployment

Aug 2007
29

0 Kommentar(e)

Eingetragen von Martin Maciaszek

Da ich gerade so richtig im Schwung bin mit Capistrano, hier noch ein Paar Tasks, welche beim deploy:setup und deploy:cold sowie deploy zusätzliche Verzeichnisse in die Anwendung symlinken. Im Code ist es beispielsweise ein Upload-Verzeichnis, was nach jedem Deployment erhalten bleiben sollte. Die Verzeichnisse lassen sich bequem per :common_dirs konfigurieren.

set :common_dirs, ['public/uploads']

namespace :deploy do
  desc "symlink additional directories on server"
  task :symlink_more do
    unless fetch(:common_dirs, []).empty?
      fetch(:common_dirs).each do |dir|
        run "rm -rf #{release_path}/#{dir} &&\
              ln -nfs #{shared_path}/#{dir} #{release_path}/#{dir}"
      end
    end
  end

  desc "Prepares additional directories on server for deployment"
  task :setup_more do
    unless fetch(:common_dirs, []).empty?
      dirs = fetch(:common_dirs).map { |d| File.join(shared_path, d)}
      run "umask 02 && mkdir -p #{dirs.join(' ')}"
    end
  end

  after "deploy:finalize_update", "deploy:symlink_more"
  after "deploy:setup", "deploy:setup_more"
end

Hinterlasse einen Kommentar