Class: Heirloom::CLI::Download

Inherits:
Object
  • Object
show all
Includes:
Shared
Defined in:
lib/heirloom/cli/download.rb

Instance Method Summary collapse

Methods included from Shared

#ensure_archive_domain_empty, #ensure_archive_exists, #ensure_buckets_available, #ensure_buckets_exist, #ensure_catalog_domain_exists, #ensure_directory_is_writable, #ensure_domain_exists, #ensure_entry_does_not_exist_in_catalog, #ensure_entry_exists_in_catalog, #ensure_metadata_in_upload_region, #ensure_path_is_directory, #ensure_valid_bucket_prefix, #ensure_valid_name, #ensure_valid_options, #ensure_valid_region, #ensure_valid_regions, #ensure_valid_secret, #latest_id, #load_config, #read_secret

Constructor Details

#initializeDownload

Returns a new instance of Download.



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
37
# File 'lib/heirloom/cli/download.rb', line 7

def initialize
  @opts = read_options
  @logger = HeirloomLogger.new :log_level => @opts[:level]
  @config = load_config :logger => @logger,
                        :opts   => @opts

  ensure_valid_options :provided => @opts,
                       :required => [:name, :output],
                       :config   => @config

  @catalog = Heirloom::Catalog.new :name    => @opts[:name],
                                   :config  => @config

  # Can't use fetch as Trollop sets :id to nil
  id = @opts[:id] ||( latest_id :name   => @opts[:name],                                              
                                :config => @config)

  @archive = Archive.new :name   => @opts[:name],
                         :config => @config,
                         :id     => id

  unless @opts[:bucket_prefix]
    ensure_archive_exists :archive => @archive,
                          :config  => @config
  end

  # Lookup region & bucket_prefix from simpledb unless specified
  # To Do, valid validation message that simpledb exists
  @region = @opts[:region] || @catalog.regions.first
  @bucket_prefix = @opts[:bucket_prefix] || @catalog.bucket_prefix
end

Instance Method Details

#downloadObject



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/heirloom/cli/download.rb', line 39

def download
  ensure_path_is_directory     :path => @opts[:output], :config => @config
  ensure_directory_is_writable :path => @opts[:output], :config => @config
  secret = read_secret :opts   => @opts,
                       :config => @config
  archive = @archive.download :output        => @opts[:output],
                              :extract       => @opts[:extract],
                              :region        => @region,
                              :bucket_prefix => @bucket_prefix,
                              :secret        => secret
  exit 1 unless archive
end