X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=lib%2Fmcollective%2Fpluginpackager.rb;h=0870386f63f2544c57d83fb3ebfae2d7e917faad;hb=d1f1649ba43c5cbc43c4beb2380096ba051d646a;hp=d0030908095f9c2c779a8710b5e0fd064c61c0f3;hpb=b87d2f4e68281062df1913440ca5753ae63314a9;p=packages%2Fprecise%2Fmcollective.git diff --git a/lib/mcollective/pluginpackager.rb b/lib/mcollective/pluginpackager.rb index d003090..0870386 100644 --- a/lib/mcollective/pluginpackager.rb +++ b/lib/mcollective/pluginpackager.rb @@ -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