Skip to content
This repository has been archived by the owner on Nov 19, 2018. It is now read-only.

Commit

Permalink
Package#import_all
Browse files Browse the repository at this point in the history
  • Loading branch information
biow0lf committed Sep 12, 2011
1 parent 1aa53e0 commit b4f247c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 250 deletions.
261 changes: 11 additions & 250 deletions app/models/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,254 +58,15 @@ def self.import(branch, file)
end
end

# def self.import_rpm(vendor_name, branch_name, file)
# branch = Branch.where(:name => branch_name, :vendor => vendor_name).first
# rpm = RPM::Package::open(file)
# if branch.srpms.where(:filename => rpm[1044]).count == 1
# package = Package.new
# package.filename = file.split('/')[-1]
# package.sourcepackage = rpm[1044]
# package.name = rpm.name
# package.version = rpm.version.v
# package.release = rpm.version.r
# package.arch = rpm.arch
#
# case rpm[1016].split('/').count
# when 1
# group = branch.groups.where(:name => rpm[1016], :parent_id => nil).first
# when 2
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first
# when 3
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first.children.where(:name => rpm[1016].split('/')[2]).first
# else
# puts "#{Time.now.to_s}: too nested groups level"
# end
#
# package.group_id = group.id
# package.epoch = rpm[1003]
# package.summary = rpm[1004]
# package.summary = 'Broken' if rpm.name == 'openmoko_dfu-util'
# package.license = rpm[1014]
# package.url = rpm[1020]
# package.description = rpm[1005]
# package.buildtime = Time.at(rpm[1006])
# package.size = File.size(file)
# package.md5 = `/usr/bin/md5sum #{file}`.split[0]
# package.branch_id = branch.id
# srpm = branch.srpms.where(:filename => rpm[1044]).first
# package.srpm_id = srpm.id
# if package.save
# $redis.set("#{branch.name}:#{package.filename}", 1)
# #puts Time.now.to_s + ": updated '" + package.filename + "'"
# # Provide.import_provides(rpm, package)
# # Require.import_requires(rpm, package)
# # Conflict.import_conflicts(rpm, package)
# # Obsolete.import_obsoletes(rpm, package)
# else
# puts "#{Time.now.to_s}: failed to update '#{package.filename}'"
# end
# else
# puts "#{Time.now.to_s}: srpm '#{rpm[1044]}' not found in db"
# end
# end
#
# def self.import_packages_i586(vendor_name, branch_name, path)
# branch = Branch.where(:name => branch_name, :vendor => vendor_name).first
# Dir.glob(path).each do |file|
# begin
# rpm = RPM::Package::open(file)
# if branch.srpms.where(:filename => rpm[1044]).count == 1
# package = Package.new
# package.filename = "#{rpm.name}-#{rpm.version.v}-#{rpm.version.r}.i586.rpm"
# package.sourcepackage = rpm[1044]
# package.name = rpm.name
# package.version = rpm.version.v
# package.release = rpm.version.r
# package.arch = rpm.arch
#
# case rpm[1016].split('/').count
# when 1
# group = branch.groups.where(:name => rpm[1016], :parent_id => nil).first
# when 2
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first
# when 3
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first.children.where(:name => rpm[1016].split('/')[2]).first
# else
# puts "#{Time.now.to_s}: too nested groups level"
# end
#
# package.group_id = group.id
# package.epoch = rpm[1003]
# package.summary = rpm[1004]
# package.summary = 'Broken' if rpm.name == 'openmoko_dfu-util'
# package.license = rpm[1014]
# package.url = rpm[1020]
# package.description = rpm[1005]
# package.buildtime = Time.at(rpm[1006])
# package.size = File.size(file)
# package.md5 = `/usr/bin/md5sum #{file}`.split[0]
# package.branch_id = branch.id
# srpm = branch.srpms.where(:filename => rpm[1044]).first
# package.srpm = srpm
# if package.save
# $redis.set("#{branch.name}:#{package.filename}", 1)
# end
# else
# puts "#{Time.now.to_s}: srpm '#{rpm[1044]}' not found in db"
# end
# rescue RuntimeError
# puts "RuntimeError at file: #{file}"
# end
# end
# end
#
# def self.import_packages_noarch(vendor_name, branch_name, path)
# branch = Branch.where(:name => branch_name, :vendor => vendor_name).first
# Dir.glob(path).each do |file|
# begin
# rpm = RPM::Package::open(file)
# if branch.srpms.where(:filename => rpm[1044]).count == 1
# package = Package.new
# package.filename = "#{rpm.name}-#{rpm.version.v}-#{rpm.version.r}.noarch.rpm"
# package.sourcepackage = rpm[1044]
# package.name = rpm.name
# package.version = rpm.version.v
# package.release = rpm.version.r
# package.arch = rpm.arch
#
# case rpm[1016].split('/').count
# when 1
# group = branch.groups.where(:name => rpm[1016], :parent_id => nil).first
# when 2
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first
# when 3
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first.children.where(:name => rpm[1016].split('/')[2]).first
# else
# puts "#{Time.now.to_s}: too nested groups level"
# end
#
# package.group_id = group.id
# package.epoch = rpm[1003]
# package.summary = rpm[1004]
# package.summary = 'Broken' if rpm.name == 'openmoko_dfu-util'
# package.license = rpm[1014]
# package.url = rpm[1020]
# package.description = rpm[1005]
# package.buildtime = Time.at(rpm[1006])
# package.size = File.size(file)
# package.md5 = `/usr/bin/md5sum #{file}`.split[0]
# package.branch_id = branch.id
# srpm = branch.srpms.where(:filename => rpm[1044]).first
# package.srpm_id = srpm.id
# if package.save
# $redis.set("#{branch.name}:#{package.filename}", 1)
# end
# else
# puts "#{Time.now.to_s}: srpm '#{rpm[1044]}' not found in db"
# end
# rescue RuntimeError
# puts "RuntimeError at file: #{file}"
# end
# end
# end
#
# def self.import_packages_x86_64(vendor_name, branch_name, path)
# branch = Branch.where(:name => branch_name, :vendor => vendor_name).first
# Dir.glob(path).each do |file|
# begin
# rpm = RPM::Package::open(file)
# if branch.srpms.where(:filename => rpm[1044]).count == 1
# package = Package.new
# package.filename = "#{rpm.name}-#{rpm.version.v}-#{rpm.version.r}.x86_64.rpm"
# package.sourcepackage = rpm[1044]
# package.name = rpm.name
# package.version = rpm.version.v
# package.release = rpm.version.r
# package.arch = rpm.arch
#
# case rpm[1016].split('/').count
# when 1
# group = branch.groups.where(:name => rpm[1016], :parent_id => nil).first
# when 2
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first
# when 3
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first.children.where(:name => rpm[1016].split('/')[2]).first
# else
# puts "#{Time.now.to_s}: too nested groups level"
# end
#
# package.group_id = group.id
# package.epoch = rpm[1003]
# package.summary = rpm[1004]
# package.summary = 'Broken' if rpm.name == 'openmoko_dfu-util'
# package.license = rpm[1014]
# package.url = rpm[1020]
# package.description = rpm[1005]
# package.buildtime = Time.at(rpm[1006])
# package.size = File.size(file)
# package.md5 = `/usr/bin/md5sum #{file}`.split[0]
# package.branch_id = branch.id
# srpm = branch.srpms.where(:filename => rpm[1044]).first
# package.srpm_id = srpm.id
# if package.save
# $redis.set("#{branch.name}:#{package.filename}", 1)
# end
# else
# puts "#{Time.now.to_s}: srpm '#{rpm[1044]}' not found in db"
# end
# rescue RuntimeError
# puts "RuntimeError at file: #{file}"
# end
# end
# end
#
# def self.import_packages_arm(vendor_name, branch_name, path)
# branch = Branch.where(:name => branch_name, :vendor => vendor_name).first
# Dir.glob(path).each do |file|
# begin
# rpm = RPM::Package::open(file)
# if branch.srpms.where(:filename => rpm[1044]).count == 1
# package = Package.new
# package.filename = "#{rpm.name}-#{rpm.version.v}-#{rpm.version.r}.#{rpm.arch}.rpm"
# package.sourcepackage = rpm[1044]
# package.name = rpm.name
# package.version = rpm.version.v
# package.release = rpm.version.r
# package.arch = rpm.arch
#
# case rpm[1016].split('/').count
# when 1
# group = branch.groups.where(:name => rpm[1016], :parent_id => nil).first
# when 2
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first
# when 3
# group = branch.groups.where(:name => rpm[1016].split('/')[0], :parent_id => nil).first.children.where(:name => rpm[1016].split('/')[1]).first.children.where(:name => rpm[1016].split('/')[2]).first
# else
# puts "#{Time.now.to_s}: too nested groups level"
# end
#
# package.group_id = group.id
# package.epoch = rpm[1003]
# package.summary = rpm[1004]
# package.summary = 'Broken' if rpm.name == 'openmoko_dfu-util'
# package.license = rpm[1014]
# package.url = rpm[1020]
# package.description = rpm[1005]
# package.buildtime = Time.at(rpm[1006])
# package.size = File.size(file)
# package.md5 = `/usr/bin/md5sum #{file}`.split[0]
# package.branch_id = branch.id
# srpm = branch.srpms.where(:filename => rpm[1044]).first
# package.srpm_id = srpm.id
# if package.save
# $redis.set("#{branch.name}:#{package.filename}", 1)
# end
# else
# puts "#{Time.now.to_s}: srpm '#{rpm[1044]}' not found in db"
# end
# rescue RuntimeError
# puts "RuntimeError at file: #{file}"
# end
# end
# end
def self.import_all(branch, pathes)
pathes.each do |path|
Dir.glob(path).each do |file|
unless $redis.exists("#{branch.name}:#{file.split('/')[-1]}")
next unless RPM.check_md5(file)
puts "#{Time.now.to_s}: import '#{file.split('/')[-1]}'"
Package.import(branch, file)
end
end
end
end
end
10 changes: 10 additions & 0 deletions spec/models/package_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,14 @@

$redis.get("#{branch.name}:#{package.filename}").should == "1"
end

it "should import all packages from path" do
branch = FactoryGirl.create(:branch)
pathes = ['/ALT/Sisyphus/files/i586/RPMS/*.i586.rpm']
$redis.get("#{branch.name}:gcc-1.0-alt1.i586.rpm").should be_nil
Dir.should_receive(:glob).and_return(['gcc-1.0-alt1.i586.rpm'])
Package.should_receive(:import).and_return(true)
RPM.should_receive(:check_md5).and_return(true)
Package.import_all(branch, pathes)
end
end

0 comments on commit b4f247c

Please sign in to comment.