OLD | NEW |
(Empty) | |
| 1 module Puppet::Parser::Functions |
| 2 |
| 3 newfunction(:manifest_exists, :type => :rvalue, :doc => <<-'begin') do |args| |
| 4 Determine if a Puppet manifest (*.pp file) exists for the given type name, |
| 5 within the Puppet hierarchy of the (adblockplus) module's parent directory |
| 6 begin |
| 7 |
| 8 if args.size != 1 |
| 9 message = "Usage: manifest_exists('some::definition::name')" |
| 10 raise Puppet::ParseError, message |
| 11 end |
| 12 |
| 13 # 'foo::bar::baz' => 'foo', ['bar', 'baz'] |
| 14 module_name, *remainder = args[0].to_s.split('::') |
| 15 |
| 16 base_directory = File.expand_path(File.join( |
| 17 File.dirname(__FILE__), |
| 18 '..', # parser |
| 19 '..', # puppet |
| 20 '..', # lib |
| 21 '..', # $module |
| 22 '..' # modules |
| 23 )) |
| 24 |
| 25 manifest_path = File.join( |
| 26 base_directory, |
| 27 module_name, |
| 28 'manifests', |
| 29 File.join(*remainder) << '.pp' |
| 30 ) |
| 31 |
| 32 return File.exists? manifest_path |
| 33 |
| 34 end |
| 35 end |
OLD | NEW |