Class: S3download::Cli
- Inherits:
-
Thor
- Object
- Thor
- S3download::Cli
- Defined in:
- lib/s3download/cli.rb
Instance Attribute Summary collapse
-
#bucket ⇒ Object
Returns the value of attribute bucket.
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#files_found ⇒ Object
Returns the value of attribute files_found.
-
#from ⇒ Object
Returns the value of attribute from.
-
#range ⇒ Object
Returns the value of attribute range.
-
#s3 ⇒ Object
Returns the value of attribute s3.
-
#target ⇒ Object
Returns the value of attribute target.
-
#to ⇒ Object
Returns the value of attribute to.
Instance Method Summary collapse
Instance Attribute Details
#bucket ⇒ Object
Returns the value of attribute bucket.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def bucket @bucket end |
#debug ⇒ Object
Returns the value of attribute debug.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def debug @debug end |
#files_found ⇒ Object
Returns the value of attribute files_found.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def files_found @files_found end |
#from ⇒ Object
Returns the value of attribute from.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def from @from end |
#range ⇒ Object
Returns the value of attribute range.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def range @range end |
#s3 ⇒ Object
Returns the value of attribute s3.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def s3 @s3 end |
#target ⇒ Object
Returns the value of attribute target.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def target @target end |
#to ⇒ Object
Returns the value of attribute to.
13 14 15 |
# File 'lib/s3download/cli.rb', line 13 def to @to end |
Instance Method Details
#fetch ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/s3download/cli.rb', line 24 def fetch raise Thor::RequiredArgumentMissingError, 'You must supply an S3 bucket name' if [:bucket].nil? raise Thor::RequiredArgumentMissingError, 'You must supply a prefix (folder within the s3 bucket to filter by' if [:prefix].nil? raise Thor::RequiredArgumentMissingError, 'You must supply a location where to save the downloaded files to' if [:save_to].nil? init ProgressBar.new("Filter Files", bucket.count) do || bucket.each do |object| if [:verbose] say "timezone: #{options[:timezone]}" say "object last modified: #{object.last_modified}" say "object last modified in timezone: #{object.last_modified.in_time_zone(options[:timezone])}" say "object falls in range: #{self.range}? => #{self.range.cover?(object.last_modified.in_time_zone(options[:timezone]))}" end if self.range.cover?(object.last_modified.in_time_zone([:timezone])) self.files_found += 1 say("Downloading #{object.key} #{object.last_modified.in_time_zone(options[:timezone])}\n", color = :white) if [:debug] FileUtils.mkdir_p "#{target}/#{object.key.match(/(.+)\//)[1]}" begin File.open("#{target}/#{object.key}", "w") do |f| f.write(object.read) end rescue Exception => e say "Unable to save file: #{e}", color = :red end end .inc end end say "Total files downloaded from S3: #{self.files_found}", color = :yellow end |
#list_timezones ⇒ Object
60 61 62 |
# File 'lib/s3download/cli.rb', line 60 def list_timezones say JSON.pretty_generate(ActiveSupport::TimeZone::MAPPING), color = :white end |
#version ⇒ Object
66 67 68 |
# File 'lib/s3download/cli.rb', line 66 def version say S3download::ABOUT end |