Sha256: 479dd1c9652ae94d6ca5eba1c74ac63c3e2ea72d22f3079ecd7bdb0602ada47c

Contents?: true

Size: 1.05 KB

Versions: 5

Compression:

Stored size: 1.05 KB

Contents

require 'active_support'

module PersistantDirectory
  # Create persistant directories in /deploy/to/shared
  #
  # Create /deploy/to/shared/public/assets
  #
  #   PersistantDirectory.create('public/assets')
  #
  # Create multiple directories at once
  #
  #   PersistantDirectory.create('public/icons', 'public/files')
  def create(*args)
    args.each do |directory|
      sudo "mkdir -p #{shared_path}/#{directory}"
      sudo "chown -R #{fetch(:runner, "app")}:wheel #{shared_path}"
      sudo "chmod -R 775 #{shared_path}"
    end
  end
  
  # Symlink shared persistant directories to the current deployment directory
  #
  # Symlink /deploy/to/shared/public/assets to /deploy/to/current/public/assets
  #
  #   PersistantDirectory.symlink('public/assets')
  #
  # Symlink multiple directories at once
  #
  #   PersistantDirectory.symlink('public/icons', 'public/files')
  def symlink(*args)
    directory = args.first
    run "ln -s #{shared_path}/#{directory} #{current_path}/#{directory}"
  end
end

Capistrano.plugin :persistant_directory, PersistantDirectory

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fingercap-0.4.5 lib/fingercap/persistant_directory.rb
fingercap-0.4.4 lib/fingercap/persistant_directory.rb
fingercap-0.4.3 lib/fingercap/persistant_directory.rb
fingercap-0.4.1 lib/fingercap/persistant_directory.rb
fingercap-0.4 lib/fingercap/persistant_directory.rb