Puppet Function: shell_escape

Defined in:
lib/puppet/parser/functions/shell_escape.rb
Function type:
Ruby 3.x API

Summary

Escapes a string so that it can be safely used in a Bourne shell command line.

Overview

shell_escape()Any

>* Note:* that the resulting string should be used unquoted and is not intended for use in double quotes nor in single quotes.

This function behaves the same as ruby’s Shellwords.shellescape() function.

Returns:

  • (Any)

    A string of characters with metacharacters converted to their escaped form.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/parser/functions/shell_escape.rb', line 8

newfunction(:shell_escape, type: :rvalue, doc: <<-DOC
  @summary
    Escapes a string so that it can be safely used in a Bourne shell command line.

  @return
    A string of characters with metacharacters converted to their escaped form.

  >* Note:* that the resulting string should be used unquoted and is not intended for use in double quotes nor in single
  quotes.

  This function behaves the same as ruby's Shellwords.shellescape() function.
DOC
) do |arguments|
  raise(Puppet::ParseError, "shell_escape(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size != 1

  # explicit conversion to string is required for ruby 1.9
  string = arguments[0].to_s

  result = Shellwords.shellescape(string)

  return result
end