aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorPeter Wilmott <p@p8952.info>2015-02-02 15:37:02 +0000
committerPeter Wilmott <p@p8952.info>2015-02-02 15:37:02 +0000
commit32bb98c0ab829b57df5ccf785fc1a0edeada5d21 (patch)
tree0327b8195c62c35d83756bed5660ca22d7e99da9 /web
parentDon't exit (diff)
downloadruby-tinderbox-32bb98c0ab829b57df5ccf785fc1a0edeada5d21.tar.gz
ruby-tinderbox-32bb98c0ab829b57df5ccf785fc1a0edeada5d21.tar.bz2
ruby-tinderbox-32bb98c0ab829b57df5ccf785fc1a0edeada5d21.zip
Add repoman tidy task to clear entries with all targets enabled
Diffstat (limited to 'web')
-rw-r--r--web/Rakefile4
-rw-r--r--web/lib/repoman.rb23
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