Sha256: afb70dfdb718d798212ce337f33e196a08b9c17734be418abebff08499f5effa

Contents?: true

Size: 950 Bytes

Versions: 25

Compression:

Stored size: 950 Bytes

Contents

require "fileutils"

module Mandy
  class Packer
    TMP_DIR = '/tmp/mandy'
    MANDY_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
    
    def self.pack(script, dir, gemfile=nil)
      tmp_path = "#{TMP_DIR}/packed-job-#{Time.now.to_i}"
      FileUtils.mkdir_p(tmp_path)
      to_be_copied = File.file?(dir) ? dir : File.join(dir, '*')
      FileUtils.cp(script, tmp_path)
      FileUtils.cp(File.join(MANDY_DIR, 'VERSION'), tmp_path)
      FileUtils.cp_r(Dir.glob(to_be_copied), tmp_path)
      if gemfile and File.exists?(gemfile)
        FileUtils.cp(gemfile, File.join(tmp_path, 'geminstaller.yml')) 
      else
        FileUtils.cp(File.join(MANDY_DIR, 'geminstaller.yml'), tmp_path)
      end
      Dir.chdir(tmp_path) { `tar -cf bundle.tar *` }
      File.join(tmp_path, 'bundle.tar')
    end
    
    def self.cleanup!(file)
      return false unless File.extname(file) == '.tar'
      `rm #{file}`
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
mandy-0.5.25 lib/mandy/packer.rb
mandy-0.5.24 lib/mandy/packer.rb
mandy-0.5.23 lib/mandy/packer.rb
mandy-0.5.22 lib/mandy/packer.rb
mandy-0.5.21 lib/mandy/packer.rb
mandy-0.5.20 lib/mandy/packer.rb
mandy-0.5.19 lib/mandy/packer.rb
mandy-0.5.17 lib/mandy/packer.rb
mandy-0.5.14 lib/mandy/packer.rb
mandy-0.5.13 lib/mandy/packer.rb
mandy-0.5.11 lib/mandy/packer.rb
mandy-0.5.10 lib/mandy/packer.rb
mandy-0.5.9 lib/mandy/packer.rb
mandy-0.5.8 lib/mandy/packer.rb
mandy-0.5.7 lib/mandy/packer.rb
mandy-0.5.6 lib/mandy/packer.rb
mandy-0.5.5 lib/mandy/packer.rb
mandy-0.5.1 lib/mandy/packer.rb
mandy-0.5 lib/mandy/packer.rb
mandy-0.4.996 lib/mandy/packer.rb