Issue #19848 has been reported by Marc Tardif.

----------------------------------------
Bug #19848: Exec provider should support environment variables with empty values
https://projects.puppetlabs.com/issues/19848

* Author: Marc Tardif
* Status: Unreviewed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
The exec provider takes an environment parameter that takes either a string or 
an array of variables. Each variable is expressed as a pair, like "KEY=value" 
for example. The problem is that the code that parses this string requires a 
value whereas this is not strictly necessary, like "KEY=" should be perfectly 
acceptable. The code in Puppet::Provider::Exec.run looks like this:

            if setting =~ /^(\w+)=((.|\n)+)$/
              env_name = $1
              value = $2

Simply changing the regular expression to use "*" instread of "+" for the value 
should work just fine:

irb(main):001:0> setting = 'KEY='
=> "KEY="
irb(main):002:0> setting =~ /^(\w+)=((.|\n)+)$/
=> nil
irb(main):003:0> setting =~ /^(\w+)=((.|\n)*)$/
=> 0
irb(main):004:0> $1
=> "KEY"
irb(main):005:0> $2
=> ""

So, the value of empty string is exactly what was requested.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to