Refactored check if a package name or section is blacklisted
This commit is contained in:
parent
7c6b5c7205
commit
da6309400c
1 changed files with 31 additions and 39 deletions
|
|
@ -88,7 +88,7 @@ namespace :debshots do
|
|||
Rails.logger.info "> Package: #{package[:Package]}"
|
||||
#Rails.logger.debug "Fetching package informaton from the database"
|
||||
|
||||
if package_blacklisted? package
|
||||
if package_name_blacklisted? package[:Package] or package_section_blacklisted? package[:Section]
|
||||
# Should the package get removed from the database?
|
||||
if REMOVE_BLACKLISTED_PACKAGE
|
||||
db_package = Package.find_by name: package[:Package]
|
||||
|
|
@ -133,19 +133,10 @@ namespace :debshots do
|
|||
repositories = Rails.configuration.package_sources
|
||||
Rails.logger = Logger.new(STDOUT)
|
||||
Rails.logger.level = Logger::INFO
|
||||
Rails.logger.level = Logger::DEBUG
|
||||
# Rails.logger.level = Logger::DEBUG
|
||||
|
||||
Rails.logger.info "Importing long descriptoin from Debian repository (i18n)"
|
||||
|
||||
# BUG
|
||||
# Description-en: autoconf like tool
|
||||
# ACR is an autoconf like tool that allows you to create configure scripts for
|
||||
# your programs. The main aim of this tool is to teach developers how to create
|
||||
# portable builds of their tools, just using generic functions wrapped by acr to
|
||||
# generate portable shellscript.
|
||||
|
||||
# Parses as "your programs. The ..."
|
||||
|
||||
repositories.each do |repository|
|
||||
Rails.logger.info "Fetching Release file for repository: #{repository[:url]} with components: #{repository[:components]}"
|
||||
release = DebImporter::Release.new(repository[:url])
|
||||
|
|
@ -155,7 +146,13 @@ namespace :debshots do
|
|||
Rails.logger.info "> Component: #{component}"
|
||||
release.i18n(component, 'en').each do |pkg|
|
||||
Rails.logger.debug "i18n information: #{pkg}"
|
||||
next unless pkg[:'Description-en']
|
||||
unless pkg[:'Description-en']
|
||||
Rails.logger.debug "No Description-en found in section."
|
||||
next
|
||||
end
|
||||
if package_name_blacklisted? pkg[:Package]
|
||||
next
|
||||
end
|
||||
# See if we have that package in the database
|
||||
if db_pkg = Package.find_by(name: pkg[:Package])
|
||||
Rails.logger.info "Updating long description for package #{db_pkg.name}"
|
||||
|
|
@ -163,6 +160,8 @@ namespace :debshots do
|
|||
short_description, long_description = text.split("\n", 2)
|
||||
db_pkg.long_description = long_description
|
||||
db_pkg.save
|
||||
else
|
||||
Rails.logger.debug "Package not in database. Nothing to update."
|
||||
end
|
||||
end # pkg.each
|
||||
end # components.each
|
||||
|
|
@ -180,8 +179,8 @@ namespace :debshots do
|
|||
task :list_deb_repos => :environment do
|
||||
repositories = Rails.configuration.package_sources
|
||||
Rails.logger = Logger.new(STDOUT)
|
||||
# Rails.logger.level = Logger::INFO
|
||||
Rails.logger.level = Logger::DEBUG
|
||||
Rails.logger.level = Logger::INFO
|
||||
# Rails.logger.level = Logger::DEBUG
|
||||
|
||||
Rails.logger.info "Listing configured DEB repositories"
|
||||
|
||||
|
|
@ -240,33 +239,26 @@ def update_data(package, db_package)
|
|||
end
|
||||
|
||||
db_package.save
|
||||
|
||||
# TODO: get the long description from http://de.archive.ubuntu.com/ubuntu/dists/precise/main/i18n/Translation-en
|
||||
end
|
||||
|
||||
# Check if a package is blacklisted and should not be imported.
|
||||
# Check if a package name is blacklisted and should not be imported.
|
||||
# This prevents importing boring software that likely does not get a useful screenshot.
|
||||
# Argument: Hash containing package information from a Packages file
|
||||
def package_blacklisted?(package)
|
||||
Rails.logger.debug "Blacklist check of package #{package[:Package]}"
|
||||
|
||||
# TODO: add a flag that allows to manually blacklist a package
|
||||
|
||||
BLACKLIST_SECTION_PATTERN.each do |pattern|
|
||||
Rails.logger.debug "Checking package section #{package[:Package]} against pattern #{pattern.inspect}"
|
||||
if package[:Section] =~ pattern
|
||||
Rails.logger.info " > Blacklisted by section (matched pattern '#{pattern.inspect}')"
|
||||
return true
|
||||
end
|
||||
def package_name_blacklisted?(name)
|
||||
if match=BLACKLIST_NAME_PATTERN.find { |pattern| name=~pattern}
|
||||
Rails.logger.debug " > Blacklisted by name ('#{name}')"
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
# Check if a package's section is blacklisted and should not be imported.
|
||||
# This prevents importing boring software that likely does not get a useful screenshot.
|
||||
def package_section_blacklisted?(section)
|
||||
if match=BLACKLIST_SECTION_PATTERN.find { |pattern| section=~pattern}
|
||||
Rails.logger.debug " > Blacklisted by section ('#{section}')"
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
|
||||
BLACKLIST_NAME_PATTERN.each do |pattern|
|
||||
Rails.logger.debug "Checking package name #{package[:Package]} against pattern #{pattern.inspect}"
|
||||
if package[:Package] =~ pattern
|
||||
Rails.logger.info " > Blacklisted by name (matched pattern '#{pattern.inspect}')"
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
false
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue