Sha256: 94a963b821363090358ad7266e7bc376c80ff2f93a08d63b62fb856a2353cca2
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module Puppet::Parser::Functions Safe = 'a-zA-Z0-9@%_+=:,./-' # Safe unquoted Dangerous = '!"`$\\' # Unsafe inside double quotes newfunction(:shellquote, :type => :rvalue, :doc => "\ Quote and concatenate arguments for use in Bourne shell. Each argument is quoted separately, and then all are concatenated with spaces. If an argument is an array, the elements of that array is interpolated within the rest of the arguments; this makes it possible to have an array of arguments and pass that array to shellquote() instead of having to specify specify each argument individually in the call. ") \ do |args| result = [] args.flatten.each do |word| if word.length != 0 and word.count(Safe) == word.length result << word elsif word.count(Dangerous) == 0 result << ('"' + word + '"') elsif word.count("'") == 0 result << ("'" + word + "'") else r = '"' word.each_byte() do |c| if Dangerous.include?(c) r += "\\" end r += c.chr() end r += '"' result << r end end return result.join(" ") end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
puppet-0.25.1 | lib/puppet/parser/functions/shellquote.rb |
puppet-0.25.0 | lib/puppet/parser/functions/shellquote.rb |