diff options
-rw-r--r-- | web/Rakefile | 4 | ||||
-rw-r--r-- | web/lib/repoman.rb | 23 |
2 files changed, 27 insertions, 0 deletions
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 |