diff options
author | Micah Anderson <micah@riseup.net> | 2012-11-20 19:08:45 -0500 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2012-11-20 19:08:45 -0500 |
commit | cef8d7f65cb9f7931625a900b00a53ffb2848f12 (patch) | |
tree | 6f97ab93fd61add53bae63cff3252ae28d37d9a1 | |
parent | 038f71b44b1937dd1f349386b6af1a162091c3db (diff) |
fix $install_method to work properly
unfortunately, if one attempts to set the $install_method to an empty string,
puppet complains that you are interning an empty string. If you set it to undef,
then the parameterized default will get chosen.
To fix this, I replaced the $bundler::params::install_method default class
parameter value with 'rvm' (the value that $bundler::params::install_method
defaulted to) and then setup a test to determine if the $install_method was set
to undef, if so, then we set a second variable ($provider_method) to undef and
use that.
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | manifests/install.pp | 13 |
2 files changed, 12 insertions, 5 deletions
@@ -18,12 +18,12 @@ https://github.com/evanstachowiak/puppet-bundler bundler) By default this will install bundler with RVM, if you wish to use another method, you can pass any puppet package provider to the class as - 'install_method', or just use '' if you wish the puppet parser to + 'install_method', or just use undef if you wish the puppet parser to automatically chose the best method for your platform. Examples: class { 'bundler::install': install_method => 'fink' }; class { 'bundler::install': install_method => 'gem' }; - class { 'bundler::install': install_method => '' } + class { 'bundler::install': install_method => undef } 3. Set whatever config variables are necessary: bundler::config { 'linecache19': diff --git a/manifests/install.pp b/manifests/install.pp index 73ceb59..4111d52 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -20,10 +20,17 @@ class bundler::install ( $ruby_version = undef, $ensure = 'present', - $install_method = $bundler::params::install_method, + $install_method = 'rvm', ) inherits bundler::params { - if $install_method == 'rvm' { + if $install_method == undef { + $provider_method = undef + } + else { + $provider_method = $bundler::params::install_method + } + + if $provider_method == 'rvm' { if $ruby_version == undef { fail('When using rvm, you must pass a ruby_version') } @@ -38,7 +45,7 @@ class bundler::install ( else { package { 'bundler': ensure => $ensure, - provider => $install_method, + provider => $provider_method, } } |