Update version according to OSCI-856
[packages/precise/mcollective.git] / lib / mcollective / pluginpackager.rb
index d0030908095f9c2c779a8710b5e0fd064c61c0f3..0870386f63f2544c57d83fb3ebfae2d7e917faad 100644 (file)
@@ -33,7 +33,7 @@ module MCollective
     end
 
     # Quietly calls a block if verbose parameter is false
-    def self.do_quietly?(verbose, &block)
+    def self.execute_verbosely(verbose, &block)
       unless verbose
         old_stdout = $stdout.clone
         $stdout.reopen(File.new("/dev/null", "w"))
@@ -51,7 +51,7 @@ module MCollective
     end
 
     # Checks if a build tool is present on the system
-    def self.build_tool?(build_tool)
+    def self.command_available?(build_tool)
       ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
         builder = File.join(path, build_tool)
         if File.exists?(builder)
@@ -62,7 +62,28 @@ module MCollective
     end
 
     def self.safe_system(*args)
-      raise RuntimeError, "Failed: #{args.join(' ')}" unless system *args
+      raise(RuntimeError, "Failed: #{args.join(' ')}") unless system *args
+    end
+
+    # Filter out platform specific dependencies
+    # Given a list of dependencies named -
+    # debian::foo
+    # redhat::bar
+    # PluginPackager.filter_dependencies('debian', dependencies)
+    # will return foo.
+    def self.filter_dependencies(prefix, dependencies)
+      dependencies.map do |dependency|
+        if dependency[:name] =~ /^(\w+)::(\w+)/
+          if prefix == $1
+            dependency[:name] = $2
+            dependency
+          else
+            nil
+          end
+        else
+          dependency
+        end
+      end.reject{ |dependency| dependency == nil }
     end
   end
 end