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"))
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)
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