class Pushwagner::Static::Deployer

Attributes

environment[R]

Public Class Methods

new(environment, opts = {}) click to toggle source
# File lib/pushwagner/static.rb, line 9
def initialize(environment, opts = {})
  @environment = environment
end

Public Instance Methods

deploy() click to toggle source
# File lib/pushwagner/static.rb, line 13
def deploy
  environment.static.each do |name, files|
    environment.hosts.each do |host|
      Net::SCP.start(host, environment.user) do |scp|
        dest = name.start_with?('/') ? name : "#{environment.path_prefix}/#{name}/"
        Pushwagner.begin_info "Uploading files to #{host}:#{dest}"
        files.each do |f|
          # Define globbing for strings containing an asterisk: '*'
          if f.include?('*')
            puts
            Dir.glob(f).each do |g|
              puts "Uploading #{g} #{'(dir)' if File.directory?(g)} to #{dest}"
              scp.upload!(g, dest, recursive: File.directory?(g))
            end
          elsif File.exists?(f)
            scp.upload!(f, dest, recursive: File.directory?(f))
          else
            puts
            Pushwagner.warning "Local file #{f} does not exist"
            puts
          end
        end

        Pushwagner.ok
      end
    end
  end
end