On Thursday, March 30, 2017 at 12:58:46 PM UTC-5, Peter K wrote:
 

> I've tried exec and sed, but I couldn't figure out the necessary escaping 
> to get the filename variable to parse (here I test with 'abc'):
> define removeMinimumUID(){
>     exec { '${filename}':
>       command => "/usr/bin/sed -i \'s|abc|cab|g\' ${filename}",
>       onlyif => '/usr/bin/test -e ${filename}',
>       refresh => '/usr/bin/true',
>       provider => 'posix',
>       logoutput => on_failure,
>     }
> }
>
> RemoveMinimumUID { "/mnt/NY_Interactive/dev/peter/puppet/abc.txt": }
>
> Error:
> Executing: '/usr/bin/sed -i 's|abc|cab|g' '^[[0m
> ^[[mNotice: 
> /Stage[main]/Main/Removeminimumuid[/mnt/NY_Interactive/dev/peter/puppet/abc.txt]/Exec[${filename}]/returns:
>  
> /usr/bin/sed: no input files^[[0m
>
>
This is only incidentally an escaping problem.  The main issue is that the 
defined type you present uses a variable $filename from the local scope, 
but you do not define any such variable in the local scope.  Therefore, 
when evaluated as a variable reference, $filename expands to nothing.  You 
can in fact see that in the command string that the exec reports itself to 
be using.  It looks like you meant to use $title instead, or perhaps to 
define $filename = $title.

Having fixed that, your Exec resource ought to work despite the quoting / 
escaping problem associated with its title.  For the record, however, you 
can solve that minor issue by changing the single quotes to double quotes (
"${filename}") or by omitting them altogether.  Personally, though, since 
you're not using the command itself as the title, I would provide a more 
descriptive title, something like

exec { "remove minimum UID in ${filename}":
  # ...
}


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/805a11ee-835a-4c1d-bcc3-6e174ca11caf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to