Update stdlib
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / shell_split.rb
1 #
2 # shell_split.rb
3 #
4
5 require 'shellwords'
6
7 module Puppet::Parser::Functions
8   newfunction(:shell_split, :type => :rvalue, :doc => <<-EOS
9 Splits a string into an array of tokens in the same way the Bourne shell does.
10
11 This function behaves the same as ruby's Shellwords.shellsplit() function
12   EOS
13   ) do |arguments|
14
15     raise(Puppet::ParseError, "shell_split(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size != 1
16
17     string = arguments[0].to_s
18
19     result = Shellwords.shellsplit(string)
20
21     return result
22   end
23 end
24
25 # vim: set ts=2 sw=2 et :