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