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_metadata_region, #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
# 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

  # Determine if we can download directly from S3
  # Or if we need to query additional information from the catalog
  validate_or_bypass_catalog

  # Lookup id, region & bucket_prefix from simpledb unless specified
  # Can't use fetch as Trollop sets :id to nil
  @region        = @opts[:region] || @catalog.regions.first
  @bucket_prefix = @opts[:bucket_prefix] || @catalog.bucket_prefix
  id             = @opts[:id] || (latest_id :name   => @opts[:name],
                                            :config => @config)

  @archive = Archive.new :name   => @opts[:name],
                         :config => @config,
                         :id     => id
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



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

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