--- /dev/null
+# get the basename of the given filename
+module Puppet::Parser::Functions
+ newfunction(:basename, :type => :rvalue) do |args|
+ File.basename(args[0])
+ end
+end
+
--- /dev/null
+# get the directory corresponding to this filename
+module Puppet::Parser::Functions
+ newfunction(:dirname, :type => :rvalue) do |args|
+ File.dirname(args[0])
+ end
+end
+
--- /dev/null
+# generic gsub call
+module Puppet::Parser::Functions
+ newfunction(:gsub, :type => :rvalue) do |args|
+ args[0].gsub(/#{args[1]}/, args[2])
+ end
+end
+
--- /dev/null
+# apply regexp escaping to a string
+module Puppet::Parser::Functions
+ newfunction(:re_escape, :type => :rvalue) do |args|
+ Regexp.escape(args[0])
+ end
+end
+
--- /dev/null
+# return the sha1 hash
+require 'digest/sha1'
+
+module Puppet::Parser::Functions
+ newfunction(:sha1, :type => :rvalue) do |args|
+ Digest::SHA1.hexdigest(args[0])
+ end
+end
+
--- /dev/null
+# escape slashes in a String
+module Puppet::Parser::Functions
+ newfunction(:slash_escape, :type => :rvalue) do |args|
+ args[0].gsub(/\//, '\\/')
+ end
+end
+
mode => 0755, owner => root, group => root;
}
+class common::puppetmaster {
+
+ file {
+ "$rubysitedir/puppet/parser":
+ ensure => directory,
+ mode => 0755, owner => root, group => root;
+ "$rubysitedir/puppet/parser/functions":
+ source => "puppet://$servername/common/functions/",
+ recurse => true, purge => true,
+ mode => 0755, owner => root, group => root;
+ }
+}
+
import "defines/*.pp"
import "classes/*.pp"