Puppet: How can I wrap a command into two line if >80 characters?

coding-style, puppet

Solution

It's sort of ugly, but if the last character in a string is a `\` followed by a newline, then the string is continued on the next line. My `sample.pp` manifest is below:

exec { 'wrapped_string_example':
  command => "/bin/echo 12345678901234567890123456789012345678901234567890\
wrapped > /var/tmp/test.txt";
}

Running this with `puppet apply sample.pp` gives the following output

$ puppet apply sample.pp
notice: /Stage[main]/Exec[wrapped_string_example]/returns: executed successfully
notice: Finished catalog run in 0.10 seconds

And catting the created file shows the lines have wrapped:

$ cat /var/tmp/test.txt 
12345678901234567890123456789012345678901234567890wrapped

See https://github.com/puppetlabs/puppet/blob/9fbb36de/lib/puppet/parser/lexer.rb#L537 (as of Puppet v2.7.0)

Also this is sort of a known issue: http://projects.puppetlabs.com/issues/5022

Problem

In puppet, if define command is > 80 characters, how can I wrap into two line to do it? ``` exec { 'create_domain': command => "some command exceed 80 character...........................................................how to do how to do?.......", } ```

Original source