class Sprawl::MultiGitLoader

Public Class Methods

load(options) click to toggle source
# File lib/sprawl/loaders/multi_git_loader.rb, line 7
def self.load(options)
  puts 'Using Multi Git Loader' if options[:verbose]

  begin
    # Make temp directory
    Dir.mkdir('.sprawl')

    pull_repos(options[:group])

    service_definitions = []

    Dir.glob('.sprawl/**/SPRAWL').each do |def_file|
      puts "Loading definition #{def_file}" if options[:verbose]

      begin
        service_definitions << Sprawl::ServiceDefinition.from(YAML.load_file(File.join(def_file)))
      rescue
        puts "Failed to load #{def_file}.  Trying the rest."
      end
    end
  ensure
    FileUtils.rm_rf('.sprawl')
  end

  service_definitions
end

Public Instance Methods

pull_repos(urls) click to toggle source
# File lib/sprawl/loaders/multi_git_loader.rb, line 34
def pull_repos(urls)
  urls.each do |url|
    puts "Pulling git repository of definitions from #{url}" if options[:verbose]
    Dir.chdir('.servitude') do
      `git clone #{url}`
    end
  end
end