module Puppet::Parser::Functions
newfunction(:path_to_array, :type => :rvalue) do |args|
res = args[0]
array = []
array.push(args[0])
if args.size == 1
while res != '/' do
res = File.dirname(res)
array.push(res) if res != '/'
end
elsif args.size == 2
e_count = args[1] - 1
e_count.times do
res = File.dirname(res)
array.push(res) if res != '/'
end
end
Notice: Compiled catalog for puppet.mos.com in environment production in 1.03 seconds
Notice: /aaa/bbb/ccc/ddd /aaa/bbb/ccc /aaa/bbb /aaa
Notice: /Stage[main]/Main/Notify[result_$bbb]/message: defined 'message' as '/aaa/bbb/ccc/ddd /aaa/bbb/ccc /aaa/bbb /aaa'
Notice: /aaa/bbb/ccc/ddd /aaa/bbb/ccc
Notice: /Stage[main]/Main/Notify[result_$ccc]/message: defined 'message' as '/aaa/bbb/ccc/ddd /aaa/bbb/ccc'
Notice: Finished catalog run in 0.60 seconds