class Middleman::Cli::S3Sync

Public Class Methods

exit_on_failure?() click to toggle source
# File lib/middleman-s3_sync/commands.rb, line 13
def self.exit_on_failure?
  true
end

Public Instance Methods

build(options = {}) click to toggle source
# File lib/middleman-s3_sync/commands.rb, line 104
def build(options = {})
  if options[:build]
    run("middleman build -e #{options[:environment]}") || exit(1)
  end
end
s3_sync() click to toggle source
# File lib/middleman-s3_sync/commands.rb, line 68
def s3_sync
  env = options[:environment].to_s.to_sym
  verbose = options[:verbose] ? 0 : 1
  instrument = options[:instrument]

  ::Middleman::S3Sync.app = ::Middleman::Application.new do
    config[:mode] = :build
    config[:environment] = env
    ::Middleman::Logger.singleton(verbose, instrument)
  end

  build(options)

  s3_sync_options = ::Middleman::S3Sync.s3_sync_options

  bucket = s3_sync_options.bucket rescue nil

  unless bucket
    raise Thor::Error.new 'You must provide the bucket name.'
  end

  # Override options based on what was passed on the command line...
  s3_sync_options.force = options[:force] if options[:force]
  s3_sync_options.aws_access_key_id = options[:aws_access_key_id] if options[:aws_access_key_id]
  s3_sync_options.aws_secret_access_key = options[:aws_secret_access_key] if options[:aws_secret_access_key]
  s3_sync_options.bucket = options[:bucket] if options[:bucket]
  s3_sync_options.verbose = options[:verbose] if options[:verbose]
  if options[:prefix]
    s3_sync_options.prefix  = options[:prefix] if options[:prefix]
    s3_sync_options.prefix = s3_sync_options.prefix.end_with?('/') ? s3_sync_options.prefix : s3_sync_options.prefix + '/'
  end
  s3_sync_options.dry_run = options[:dry_run] if options[:dry_run]

  ::Middleman::S3Sync.sync()
end