Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / validate_augeas.rb
index 4ea4fe0..26e51e8 100644 (file)
@@ -1,8 +1,13 @@
 require 'tempfile'
 
 require 'tempfile'
 
+#
+# validate_augaes.rb
+#
 module Puppet::Parser::Functions
 module Puppet::Parser::Functions
-  newfunction(:validate_augeas, :doc => <<-'ENDHEREDOC') do |args|
-    Perform validation of a string using an Augeas lens
+  newfunction(:validate_augeas, :doc => <<-DOC
+    @summary
+      Perform validation of a string using an Augeas lens
+
     The first argument of this function should be a string to
     test, and the second argument should be the name of the Augeas lens to use.
     If Augeas fails to parse the string with the lens, the compilation will
     The first argument of this function should be a string to
     test, and the second argument should be the name of the Augeas lens to use.
     If Augeas fails to parse the string with the lens, the compilation will
@@ -12,41 +17,47 @@ module Puppet::Parser::Functions
     not be found in the file. The `$file` variable points to the location
     of the temporary file being tested in the Augeas tree.
 
     not be found in the file. The `$file` variable points to the location
     of the temporary file being tested in the Augeas tree.
 
-    For example, if you want to make sure your passwd content never contains
-    a user `foo`, you could write:
+    @return
+      validate string using an Augeas lens
+
+    @example **Usage**
+
+      If you want to make sure your passwd content never contains
+      a user `foo`, you could write:
 
         validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo'])
 
 
         validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo'])
 
-    Or if you wanted to ensure that no users used the '/bin/barsh' shell,
-    you could use:
+      If you wanted to ensure that no users used the '/bin/barsh' shell,
+      you could use:
 
         validate_augeas($passwdcontent, 'Passwd.lns', ['$file/*[shell="/bin/barsh"]']
 
 
         validate_augeas($passwdcontent, 'Passwd.lns', ['$file/*[shell="/bin/barsh"]']
 
-    If a fourth argument is specified, this will be the error message raised and
-    seen by the user.
+      If a fourth argument is specified, this will be the error message raised and
+      seen by the user.
 
 
-    A helpful error message can be returned like this:
+      A helpful error message can be returned like this:
 
         validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas')
 
 
         validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas')
 
-    ENDHEREDOC
+    DOC
+             ) do |args|
     unless Puppet.features.augeas?
     unless Puppet.features.augeas?
-      raise Puppet::ParseError, ("validate_augeas(): this function requires the augeas feature. See http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Augeas#Pre-requisites for how to activate it.")
+      raise Puppet::ParseError, 'validate_augeas(): this function requires the augeas feature. See http://docs.puppetlabs.com/guides/augeas.html#pre-requisites for how to activate it.'
     end
 
     end
 
-    if (args.length < 2) or (args.length > 4) then
-      raise Puppet::ParseError, ("validate_augeas(): wrong number of arguments (#{args.length}; must be 2, 3, or 4)")
+    if (args.length < 2) || (args.length > 4)
+      raise Puppet::ParseError, "validate_augeas(): wrong number of arguments (#{args.length}; must be 2, 3, or 4)"
     end
 
     msg = args[3] || "validate_augeas(): Failed to validate content against #{args[1].inspect}"
 
     require 'augeas'
     end
 
     msg = args[3] || "validate_augeas(): Failed to validate content against #{args[1].inspect}"
 
     require 'augeas'
-    aug = Augeas::open(nil, nil, Augeas::NO_MODL_AUTOLOAD)
+    aug = Augeas.open(nil, nil, Augeas::NO_MODL_AUTOLOAD)
     begin
       content = args[0]
 
       # Test content in a temporary file
     begin
       content = args[0]
 
       # Test content in a temporary file
-      tmpfile = Tempfile.new("validate_augeas")
+      tmpfile = Tempfile.new('validate_augeas')
       begin
         tmpfile.write(content)
       ensure
       begin
         tmpfile.write(content)
       ensure
@@ -58,14 +69,14 @@ module Puppet::Parser::Functions
       aug.transform(
         :lens => lens,
         :name => 'Validate_augeas',
       aug.transform(
         :lens => lens,
         :name => 'Validate_augeas',
-        :incl => tmpfile.path
+        :incl => tmpfile.path,
       )
       aug.load!
 
       unless aug.match("/augeas/files#{tmpfile.path}//error").empty?
         error = aug.get("/augeas/files#{tmpfile.path}//error/message")
         msg += " with error: #{error}"
       )
       aug.load!
 
       unless aug.match("/augeas/files#{tmpfile.path}//error").empty?
         error = aug.get("/augeas/files#{tmpfile.path}//error/message")
         msg += " with error: #{error}"
-        raise Puppet::ParseError, (msg)
+        raise Puppet::ParseError, msg
       end
 
       # Launch unit tests
       end
 
       # Launch unit tests
@@ -73,7 +84,7 @@ module Puppet::Parser::Functions
       aug.defvar('file', "/files#{tmpfile.path}")
       tests.each do |t|
         msg += " testing path #{t}"
       aug.defvar('file', "/files#{tmpfile.path}")
       tests.each do |t|
         msg += " testing path #{t}"
-        raise Puppet::ParseError, (msg) unless aug.match(t).empty?
+        raise Puppet::ParseError, msg unless aug.match(t).empty?
       end
     ensure
       aug.close
       end
     ensure
       aug.close