On Thu, Dec 12, 2013 at 8:26 AM, Jeff Bachtel <
[email protected]> wrote:

> (repost from puppet-users)
>
> When creating a provider that uses a command not in PATH, what is the
> best-practice pattern for case'ing out different potential locations? As an
> example, the puppetlabs rabbitmq pupmod has a rabbitmqplugins provider that
> falls down on CentOS using the rabbitmq upstream package due to
> rabbitmq-plugins being in /usr/lib/rabbitmq/bin .
>
> As an aside (I don't know how often Puppet devs read this list), could the
> Puppet::Util::which method perhaps be extended to add a non-user PATH-like
> variable to the path search string? Something like PUPPET_PROVIDER_PATH, if
> it exists, being concatenated before PATH. I could then configure the
> system environment on weird hosts to provide that variable for puppet
> without mucking with user/system PATH.
>

It seems reasonable to modify which() [1] to take an optional PATH instead
of hard-coding it to ENV['PATH'].  The method depends on PATH, so it's
probably a bit "better" to inject that dependency rather than hardcode it
in the method body as it is now.

Maybe def which(bin, path=ENV['PATH']) ?

https://github.com/puppetlabs/puppet/blob/780ecb238d47f1ab5d6ce18fc8e38f98a12d66c0/lib/puppet/util.rb#L178

-- 
*Jeff McCune <http://jeffmccune.com/>*

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CAOXx1vG0cvcir-H93_icz54WzawsPwOGr0Mcb2%2BirA%3D_i%3D7bJA%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to