Sha256: a315b1a11a10699b45391d8a0ff6406df065e4dd360480e7d25296ed906083ce

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

namespace :deploy do
  task :setup_config do
    on roles(:app) do
      # Make the config dir
      execute :mkdir, "-p #{shared_path}/config"
      full_app_name = fetch(:full_app_name)

      # Config files to be uploaded to shared/config, see the definition of
      # `smart_template` for details of operation.
      # Essentially looks for `#{filename}.erb` in `deploy/#{full_app_name}/`
      # and if it isn't there, falls back to `deploy/#{shared}`. Generally
      # everything should be in `deploy/shared` with params which differ
      # set in the stage files.
      config_files = fetch(:config_files)
      if config_files&.any?
        config_files.each do |file|
          smart_template file
        end
      end

      # Which of the above files should be marked as executable
      executable_files = fetch(:executable_config_files)
      if config_files&.any?
        executable_files.each do |file|
          execute :chmod, "+x #{shared_path}/config/#{file}"
        end
      end

      # Symlink stuff that should be... symlinked
      symlinks = fetch(:symlinks)
      if symlinks&.any?
        symlinks.each do |symlink|
          sudo "ln -nfs #{shared_path}/config/#{symlink[:source]} #{sub_strings(symlink[:link])}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
meataxe-0.6.2 lib/meataxe/capistrano/tasks/setup_config.cap