-
Notifications
You must be signed in to change notification settings - Fork 575
Expand file tree
/
Copy pathshell_escape.rb
More file actions
32 lines (24 loc) · 922 Bytes
/
shell_escape.rb
File metadata and controls
32 lines (24 loc) · 922 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true
require 'shellwords'
#
# shell_escape.rb
#
module Puppet::Parser::Functions
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
end
# vim: set ts=2 sw=2 et :