module Astrails module Safe class Archive < Source def command "tar -cf - #{config[:options]} #{tar_exclude_files} #{tar_files}" end def extension; '.tar'; end protected def tar_exclude_files [*config[:exclude]].compact.map{|x| "--exclude=#{x}"}.join(" ") end def tar_files raise RuntimeError, "missing files for tar" unless config[:files] [*config[:files]].map{|s| s.strip}.join(" ") end end end end