Hi,

you need to add provider => shell to your exec to get the subshell working

regards Florian

On Wed, Apr 25, 2012 at 6:01 PM, Shantanu <knowshant...@gmail.com> wrote:

>
> I would like to 'exec' an installation script 'onlyif' an installation
> directory is empty. I tried using following bash one-liner however it
> didn't work:
> <code>
>  exec{$one_install_script:
>    require => File[$one_install_script],
>    onlyif => "[ \"$(/bin/ls -A  $one_location)\" ] && exit 1 || exit
> 0"
>  }
>
> </code>
>
> It failed with following error:
>
> <error>
> err: Failed to apply catalog: Parameter onlyif failed: '[ "$(/bin/ls -
> A  /srv/cloud/one)" ] && exit 1 || exit 0' is not qualified and no
> path was specified. Please qualify the command or specify a path.
> </error>
>
> A bash script with above one-liner worked fine though.
> <code>
>  exec{$one_install_script:
>    require => File[$one_install_script],
>    onlyif  => "/tmp/is-dir-empty.sh $one_location"
> </code>
>
> The bash script approach works fine for me. However I am not sure what
> is wrong with the one-liner command. Is $(cmd) command substitution or
> built-in function 'exit' a problem?  Any pointers will be really
> helpful.
>
> --
> Thanks,
> Shantanu
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to