]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/chef/libraries/subversion.rb
Monkey patch subversion provider to avoid failures
[chef.git] / cookbooks / chef / libraries / subversion.rb
index dec188cec0f4c8eb8ebd5b426fdf9363cd04cbc5..8e9f1e3d280295f1b646ff90ebad74f21fc5f107 100644 (file)
@@ -29,6 +29,7 @@ class Chef
 
         @repo_attrs ||= svn_info.lines.each_with_object({}) do |line, attrs|
           next unless line =~ SVN_INFO_PATTERN
+
           property = Regexp.last_match[1]
           value = Regexp.last_match[2]
           attrs[property] = value
@@ -43,6 +44,19 @@ class Chef
         command = scm(:info)
         shell_out!(command, run_options(:cwd => cwd, :returns => [0, 1])).stdout
       end
+
+      def revision_int
+        @revision_int ||= begin
+          if new_resource.revision =~ /^\d+$/
+            new_resource.revision
+          else
+            command = scm(:info, new_resource.repository, new_resource.svn_info_args, authentication, "-r#{new_resource.revision}")
+            svn_info = shell_out!(command, run_options(:returns => [0, 1])).stdout
+
+            extract_revision_info(svn_info)
+          end
+        end
+      end
     end
   end
 end