Class: S3Website::Uploader

Inherits:
Object
  • Object
show all
Defined in:
lib/s3_website/uploader.rb

Class Method Summary collapse

Class Method Details

.run(site_dir, config, in_headless_mode = false) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/s3_website/uploader.rb', line 3

def self.run(site_dir, config, in_headless_mode = false)
  puts "Deploying #{site_dir.sub(Dir.pwd + '/', '')}/* to #{config['s3_bucket']}"

  s3_config = { :s3_endpoint => Endpoint.new(config['s3_endpoint']).hostname }
  s3_id, s3_secret = config['s3_id'], config['s3_secret']
  unless s3_id.nil? || s3_id == '' || s3_secret.nil? || s3_secret == ''
    s3_config.merge! :access_key_id => s3_id, :secret_access_key => s3_secret
  end

  s3 = AWS::S3.new(s3_config)

  new_files_count, changed_files_count, changed_files = upload_files(
    s3, config, site_dir
  )

  redirects = config['redirects'] || {}
  changed_redirects = setup_redirects redirects, config, s3

  deleted_files_count = remove_superfluous_files(
    s3,
    config,
    {
      :s3_bucket => config['s3_bucket'],
      :site_dir => site_dir,
      :redirects => redirects,
      :in_headless_mode => in_headless_mode,
      :ignore_on_server => config["ignore_on_server"]
    }
  )

  print_done_report config

  [new_files_count, changed_files_count, deleted_files_count, changed_files, changed_redirects]
end