]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
Add ability to use puppet from git via bundler
authorJeff McCune <jeff@puppetlabs.com>
Thu, 11 Apr 2013 16:49:53 +0000 (09:49 -0700)
committerJeff McCune <jeff@puppetlabs.com>
Thu, 11 Apr 2013 17:42:46 +0000 (10:42 -0700)
Without this patch the Gemfile can only satisfy dependencies using
officially release gem versions.  This is a problem because we want to
test stdlib against the latest HEAD of the puppet git repository.

This patch addresses the problem by copying over the location_for method
from the Puppet Gemfile, which will parse out git://, file:// or Gem
version specifications.

This, in turn, allows jobs to be configured to run with different
dependency integrations.

Gemfile

diff --git a/Gemfile b/Gemfile
index 442dd9d7e2394348fb9dde882dff348888757602..50df2eeecb1a46a8c49ad59b3ed7c3a20175e7af 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,5 +1,16 @@
 source "https://rubygems.org"
 
+def location_for(place, fake_version = nil)
+  mdata = /^(git:[^#]*)#(.*)/.match(place)
+  if mdata
+    [fake_version, { :git => mdata[1], :branch => mdata[2], :require => false }].compact
+  elsif place =~ /^file:\/\/(.*)/
+    ['>= 0', { :path => File.expand_path(mdata[1]), :require => false }]
+  else
+    [place, { :require => false }]
+  end
+end
+
 group :development do
   gem 'watchr'
 end
@@ -14,7 +25,7 @@ group :development, :test do
 end
 
 if puppetversion = ENV['PUPPET_GEM_VERSION']
-  gem 'puppet', puppetversion, :require => false
+  gem 'puppet', *location_for(puppetversion)
 else
   gem 'puppet', :require => false
 end