lib/backupsss/tar.rb in backupsss-0.1.3 vs lib/backupsss/tar.rb in backupsss-0.2.0

- old
+ new

@@ -10,13 +10,24 @@ @dest = dest @compress_archive = compress_archive end def make - if valid_dest? && valid_src? - Open3.capture3("#{tar_command} #{dest} #{src}") - File.open(dest) + return nil unless valid_dest? && valid_src? + _, err, status = Open3.capture3("#{tar_command} #{dest} #{src}") + STDERR.puts "tar command stderr:\n#{err}" unless err.empty? + check_tar_result(status) + File.open(dest) + end + + def check_tar_result(status) + if status.exitstatus.nonzero? + raise "ERROR: #{tar_command} exited #{status.exitstatus}" end + unless File.exist?(dest) + raise 'ERROR: Tar destination file does not exist' + end + raise 'ERROR: Tar destionation file is 0 bytes.' if File.size(dest).zero? end def valid_dest? dir_exists?(dest_dir) && dest_writable? end