Class: Heirloom::CLI::Download

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

Class Method Summary collapse

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.



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
38
39
40
41
# File 'lib/heirloom/cli/download.rb', line 11

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

Class Method Details

.command_summaryObject



7
8
9
# File 'lib/heirloom/cli/download.rb', line 7

def self.command_summary
  'Download Heirloom'
end

Instance Method Details

#downloadObject



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/heirloom/cli/download.rb', line 43

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