class CloudappExport::CLI
Public Instance Methods
all()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 14 def all authenticate! items = CloudappExport::ItemList.new( api, 'limit' => options['limit'], 'use_cache' => options['cache'], 'cache_key' => "#{username}:#{options['limit']}", ) say("Account contains #{set_color items.total_count, :bold} items") say("", nil, true) exporter = ::CloudappExport::Exporter.new( items, 'dir' => options['dir'], ) exporter.on_log do |message| print message end exporter.export_all end
api()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 63 def api @api ||= begin CloudappExport::Api.new( 'username' => username, 'password' => password, ) end end
authenticate!()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 72 def authenticate! api.authenticate! say("Successfully authenticated!", :green) rescue StandardError => error say("Could not authenticate with Cloudapp (#{error.message})", :red) Kernel.exit end
password()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 89 def password say("WARNING: Passing password via the command line is not recommended!", :yellow) if options['password'] @password ||= begin password = options['password'] password ||= ENV['CLOUDAPP_PASSWORD'] (password ||= ask("Password:", echo: false)) && say('*' * 20) password || raise("Password is required") end end
stats()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 40 def stats authenticate! items = CloudappExport::ItemList.new( api, ) say("Account contains #{set_color items.total_count, :bold} items") say("", nil, true) say("Dir #{options['dir']}") say("", nil, true) # TODO: Just count files directly in local folder downloaded_items = items.data.select { |item| File.exist?("#{options['dir']}/#{item.filename}") } downloaded_items_size = downloaded_items.inject(0) { |sum, item| sum + File.size("#{options['dir']}/#{item.filename}") } say("Downloaded #{downloaded_items.count}") say(" #{(downloaded_items_size.to_f / 1_000_000).round 2} mb") end
username()
click to toggle source
# File lib/cloudapp_export/cli.rb, line 80 def username @username ||= begin username = options['username'] username ||= ENV['CLOUDAPP_USERNAME'] username ||= ask("Username:") username || raise("Username is required") end end