Hello,

I came across a bug with the variables context definied by a module when 
passing parameters to the module.
Command "module.sh /bazazertyuiop /bar" returns variables in the *baz* 
context, rather than *module.sh*
Passing no parameters ends with the right context (*module.sh*)

Tested with yesterdays source code of the svn, on a Fedora 11 (same 
issue with on Cygwin)

To reproduce the bug, consider the following promise

bundle agent test {
  commands:
       "/home/nicolas/foo/module.sh"
            args => "/bazazertyuiop /bar",
            module => "true",
            contain => outputable,
            comment => "Testing the module context";

    "/bin/echo ${baz.foo}";
}


body contain outputable {
useshell => "true";
no_output => "false";
}


With module.sh beeing:
echo "=foo=bar";

I end up with the following result
cf3  -> Executing '/home/nicolas/foo/module.sh /bazazertyuiop /bar' 
...(timeout=0,owner=-1,group=-1)
cf3  -> (Setting umask to 77)
cf3 Defined variable: foo in context baz with value: bar
cf3 M "/module.sh /baz":
cf3  -> Finished script - succeeded /home/nicolas/foo/module.sh
cf3  -> Completed execution of /home/nicolas/foo/module.sh 
/bazazertyuiop /bar
cf3  -> Promiser string contains a valid executable (/bin/echo) - ok
cf3
cf3     .........................................................
cf3     Promise handle:
cf3     Promise made by: /bin/echo bar
cf3     .........................................................

Regards,
Nicolas

_______________________________________________
Bug-cfengine mailing list
Bug-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/bug-cfengine

Reply via email to