Sha256: ab5ddb0e0827248244cc2f26ee0b7b59b0844a2af32f57a032b2e0f51474c560
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
require 'tempfile' module Hobo module Lib module Seed class Seed include Hobo::Logging def initialize(seed_path, url) @seed_path = seed_path @url = url end def export path path = File.expand_path(path) FileUtils.mkdir_p path logger.info "Exporting seed to #{path}" tmp_path = Dir.mktmpdir("hobo-seed-export") Dir.chdir @seed_path do Hobo::Helper.shell "git clone . #{tmp_path.shellescape}" end Dir.chdir tmp_path do Hobo::Helper.shell "git submodule update --init" Hobo::Helper.shell "git archive master | tar -x -C #{path.shellescape}" Hobo::Helper.shell "git submodule foreach 'cd #{tmp_path.shellescape}/$path && git archive HEAD | tar -x -C #{path.shellescape}/$path'" end FileUtils.rm_f tmp_path end def update FileUtils.mkdir_p @seed_path if File.exists? File.join(@seed_path, 'HEAD') Dir.chdir @seed_path do logger.info "Updating seed in #{@seed_path}" Hobo::Helper.shell 'git', 'fetch', '--all' end else logger.info "Cloning seed from #{@url} to #{@seed_path}" Hobo::Helper.shell 'git', 'clone', @url, @seed_path, '--mirror' end end def vm_ip [ 10, [*0..255].sample, [*0..255].sample, [*2..255].sample ].join('.') end def version Dir.chdir @seed_path do Hobo::Helper.shell 'git', 'rev-parse', '--short', 'HEAD', :capture => true end end class << self def name_to_url name name.match(/\./) ? name : "git@github.com:inviqa/hobo-seed-#{name}" end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hobo-inviqa-0.0.6 | lib/hobo/lib/seed/seed.rb |