diff --git a/Gemfile b/Gemfile index 2a6d646..1e7b5ff 100644 --- a/Gemfile +++ b/Gemfile @@ -6,4 +6,4 @@ group :test do gem 'codeclimate-test-reporter', '~> 1.0' end -gem 'rake', '~> 12.0' +gem 'rake', '~> 13.0' diff --git a/lib/miga/cli/action/db.rb b/lib/miga/cli/action/db.rb index b91b915..cf18195 100644 --- a/lib/miga/cli/action/db.rb +++ b/lib/miga/cli/action/db.rb @@ -237,7 +237,9 @@ def check_digest(ver, file) cli.say '' if cli[:pb] dig = md5.hexdigest cli.say "Observed: #{dig}" - raise 'Corrupt file, MD5 does not match' unless dig == ver[:MD5] + unless dig == ver[:MD5] + raise "Corrupt file, MD5 differs. Remove #{file} before trying again" + end end def version_size(ver) diff --git a/lib/miga/common/net.rb b/lib/miga/common/net.rb index 3844bdd..392e084 100644 --- a/lib/miga/common/net.rb +++ b/lib/miga/common/net.rb @@ -49,6 +49,7 @@ def remote_connection(host) when 'ftp' ftp = Net::FTP.new(uri.host) ftp.passive = true + ftp.resume = true ftp.login ftp.chdir(uri.path) unless host.is_a?(URI) ftp @@ -87,7 +88,8 @@ def download_file_ftp(connection, file = nil, target = nil) # Prepare download FileUtils.mkdir_p(File.dirname(target)) if target filesize = connection.size(file) - transferred = 0 + transferred = + target && connection.resume && File.exist?(target) ? File.size(target) : 0 # Get in chunks of 1KiB ret = '' diff --git a/lib/miga/version.rb b/lib/miga/version.rb index 3d5895c..bb8a0c6 100644 --- a/lib/miga/version.rb +++ b/lib/miga/version.rb @@ -12,7 +12,7 @@ module MiGA # - String indicating release status: # - rc* release candidate, not released as gem # - [0-9]+ stable release, released as gem - VERSION = [1.3, 15, 9].freeze + VERSION = [1.3, 15, 10].freeze ## # Nickname for the current major.minor version.