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.

Reply via email to