From 32bb98c0ab829b57df5ccf785fc1a0edeada5d21 Mon Sep 17 00:00:00 2001 From: Peter Wilmott
Date: Mon, 2 Feb 2015 15:37:02 +0000 Subject: Add repoman tidy task to clear entries with all targets enabled --- web/Rakefile | 4 ++++ web/lib/repoman.rb | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'web') diff --git a/web/Rakefile b/web/Rakefile index 7676285..3f3dfab 100644 --- a/web/Rakefile +++ b/web/Rakefile @@ -29,6 +29,10 @@ namespace :db do update_repoman end + task :tidy_repoman do + tidy_repoman + end + task :clear_repoman do clear_repoman end diff --git a/web/lib/repoman.rb b/web/lib/repoman.rb index e8c6e6a..8287837 100644 --- a/web/lib/repoman.rb +++ b/web/lib/repoman.rb @@ -80,6 +80,29 @@ def update_repoman end end +def tidy_repoman + Package.order { [category, lower(name), version] }.each do |package| + target = '' + target = package[:r19_target] unless package[:r19_target] == 'nil' + target = package[:r20_target] unless package[:r20_target] == 'nil' + target = package[:r21_target] unless package[:r21_target] == 'nil' + target = package[:r22_target] unless package[:r22_target] == 'nil' + if target.empty? + Repoman.where(package_id: package[:identifier]).delete + next + end + + next_target = '' + next_target = 'ruby20' if target == 'ruby19' + next_target = 'ruby21' if target == 'ruby20' + next_target = 'ruby22' if target == 'ruby21' + if next_target.empty? + Repoman.where(package_id: package[:identifier]).delete + next + end + end +end + def clear_repoman Repoman.map(&:delete) end -- cgit v1.2.3-65-gdbad