aboutsummaryrefslogtreecommitdiff
path: root/plugins/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/puppet')
-rw-r--r--plugins/puppet/parser/functions/basename.rb7
-rw-r--r--plugins/puppet/parser/functions/dirname.rb7
-rw-r--r--plugins/puppet/parser/functions/gsub.rb13
-rw-r--r--plugins/puppet/parser/functions/re_escape.rb7
-rw-r--r--plugins/puppet/parser/functions/sha1.rb9
-rw-r--r--plugins/puppet/parser/functions/slash_escape.rb7
-rw-r--r--plugins/puppet/parser/functions/split.rb7
7 files changed, 57 insertions, 0 deletions
diff --git a/plugins/puppet/parser/functions/basename.rb b/plugins/puppet/parser/functions/basename.rb
new file mode 100644
index 0000000..14f0ca0
--- /dev/null
+++ b/plugins/puppet/parser/functions/basename.rb
@@ -0,0 +1,7 @@
+# get the basename of the given filename
+module Puppet::Parser::Functions
+ newfunction(:basename, :type => :rvalue) do |args|
+ File.basename(args[0])
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/dirname.rb b/plugins/puppet/parser/functions/dirname.rb
new file mode 100644
index 0000000..3f784ac
--- /dev/null
+++ b/plugins/puppet/parser/functions/dirname.rb
@@ -0,0 +1,7 @@
+# get the directory corresponding to this filename
+module Puppet::Parser::Functions
+ newfunction(:dirname, :type => :rvalue) do |args|
+ File.dirname(args[0])
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/gsub.rb b/plugins/puppet/parser/functions/gsub.rb
new file mode 100644
index 0000000..371820f
--- /dev/null
+++ b/plugins/puppet/parser/functions/gsub.rb
@@ -0,0 +1,13 @@
+# generic gsub call
+module Puppet::Parser::Functions
+ newfunction(:gsub, :type => :rvalue) do |args|
+ if args[0].is_a?(Array)
+ args[0].collect do |val|
+ val.gsub(/#{args[1]}/, args[2])
+ end
+ else
+ args[0].gsub(/#{args[1]}/, args[2])
+ end
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/re_escape.rb b/plugins/puppet/parser/functions/re_escape.rb
new file mode 100644
index 0000000..6e5904b
--- /dev/null
+++ b/plugins/puppet/parser/functions/re_escape.rb
@@ -0,0 +1,7 @@
+# apply regexp escaping to a string
+module Puppet::Parser::Functions
+ newfunction(:re_escape, :type => :rvalue) do |args|
+ Regexp.escape(args[0])
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/sha1.rb b/plugins/puppet/parser/functions/sha1.rb
new file mode 100644
index 0000000..b5aa813
--- /dev/null
+++ b/plugins/puppet/parser/functions/sha1.rb
@@ -0,0 +1,9 @@
+# return the sha1 hash
+require 'digest/sha1'
+
+module Puppet::Parser::Functions
+ newfunction(:sha1, :type => :rvalue) do |args|
+ Digest::SHA1.hexdigest(args[0])
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/slash_escape.rb b/plugins/puppet/parser/functions/slash_escape.rb
new file mode 100644
index 0000000..04d3b95
--- /dev/null
+++ b/plugins/puppet/parser/functions/slash_escape.rb
@@ -0,0 +1,7 @@
+# escape slashes in a String
+module Puppet::Parser::Functions
+ newfunction(:slash_escape, :type => :rvalue) do |args|
+ args[0].gsub(/\//, '\\/')
+ end
+end
+
diff --git a/plugins/puppet/parser/functions/split.rb b/plugins/puppet/parser/functions/split.rb
new file mode 100644
index 0000000..d08a40b
--- /dev/null
+++ b/plugins/puppet/parser/functions/split.rb
@@ -0,0 +1,7 @@
+# generic split call
+module Puppet::Parser::Functions
+ newfunction(:split, :type => :rvalue) do |args|
+ args[0].split(/#{args[1]}/)
+ end
+end
+