Sha256: 083a4d86a8a81d26cae6b3a27277df82e38a03a7ce5be0e5b353b99d323b48c8
Contents?: true
Size: 1014 Bytes
Versions: 2
Compression:
Stored size: 1014 Bytes
Contents
require 'open3' module Backupsss # The Tar class is used for creating a tar archive. class Tar attr_reader :src, :dest def initialize(src, dest) @src = src @dest = dest end def make if valid_dest? && valid_src? Open3.capture3("tar -cvf #{dest} #{src}") File.open(dest) end end def valid_dest? dir_exists?(dest_dir) && dest_writable? end def valid_src? dir_exists?(src) && src_readable? end def filename dest.split('/').last end private def dest_dir File.dirname(dest) end def dest_writable? File.writable?(dest_dir) || raise_sys_err(dest_dir, Errno::EPERM::Errno) end def dir_exists?(dir) File.exist?(dir) || raise_sys_err(dir, Errno::ENOENT::Errno) end def src_readable? File.readable?(src) || raise_sys_err(src, Errno::EPERM::Errno) end def raise_sys_err(dir, err) raise SystemCallError.new(dir.to_s, err) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
backupsss-0.1.1 | lib/backupsss/tar.rb |
backupsss-0.1.0 | lib/backupsss/tar.rb |