| #!/usr/bin/env ruby |
| PAGETITLE = "ASF Download Page Checker - BETA" |
| $LOAD_PATH.unshift '/srv/whimsy/lib' |
| require 'wunderbar' |
| require 'wunderbar/bootstrap' |
| require 'whimsy/asf' |
| require "../../tools/download_check.rb" |
| |
| _html do |
| _body? do |
| _whimsy_body( |
| title: PAGETITLE, |
| related: { |
| 'https://www.apache.org/legal/release-policy.html#release-announcements' => 'Release announcements', |
| 'https://www.apache.org/dev/release-distribution#download-links' => 'Download links and cryptographic files', |
| 'https://www.apache.org/dev/release-download-pages.html#download-page' => 'KEYS file and download verification', |
| 'https://www.apache.org/dev/release-distribution#sigs-and-sums' => 'MD5 and SHA1 are deprecated', |
| }, |
| helpblock: -> { |
| _p do |
| _b '*** BETA ***' |
| end |
| _p 'This page can be used to check that an Apache download page has been set up correctly.' |
| _p do |
| _'The download page is checked for the following:' |
| _ul do |
| _li 'Does not link to dist.apache.org' |
| _li 'Page does not reference repository.apache.org' |
| _li 'Has link to KEYS file' |
| _li 'References need to verify downloads' |
| _li 'If gpg verify example is given, should include second parameter' |
| _li 'Each artifact has a signature and a hash, which should not be MD5 or SHA1' |
| # _li 'If a version is specified, there must be an artifact link with that version' |
| end |
| _p 'If any errors are found, no further checks are made unless "Always check links" is enabled' |
| _p 'Links are checked by using HTTP HEAD requests; however links to the archive server are not checked unless "Check archive server links" is selected' |
| end |
| } |
| ) do |
| _whimsy_panel('Check Download page', style: 'panel-success') do |
| _form.form_horizontal method: 'post' do |
| _div.form_group do |
| _label.control_label.col_sm_2 'Page URL', for: 'url' |
| _div.col_sm_10 do |
| _input.form_control.name name: 'url', required: true, |
| value: ENV['QUERY_STRING'], |
| placeholder: 'download URL', |
| size: 50 |
| end |
| end |
| _div.form_group do |
| _label.control_label.col_sm_2 'TLP override', for: 'tlp' |
| _div.col_sm_10 do |
| _input.form_control.name name: 'tlp', required: false, |
| placeholder: 'optional TLP override', |
| size: 50 |
| end |
| end |
| # _div.form_group do |
| # _label.control_label.col_sm_2 'Version to check', for: 'version' |
| # _div.col_sm_10 do |
| # _input.form_control.name name: 'version', required: false, |
| # placeholder: 'optional version to check', |
| # size: 50 |
| # end |
| # end |
| _div.form_group do |
| _label.control_label.col_sm_2 'Always check links', for: 'checklinks' |
| _div.col_sm_10 do |
| _input name: 'checklinks', type: 'checkbox', value: 'true', checked: false |
| end |
| end |
| _div.form_group do |
| _label.control_label.col_sm_2 'Never check links', for: 'nochecklinks' |
| _div.col_sm_10 do |
| _input name: 'nochecklinks', type: 'checkbox', value: 'true', checked: false |
| end |
| end |
| _div.form_group do |
| _label.control_label.col_sm_2 'Check links to archive server', for: 'archivecheck' |
| _div.col_sm_10 do |
| _input name: 'archivecheck', type: 'checkbox', value: 'true', checked: false |
| end |
| end |
| _div.form_group do |
| _div.col_sm_offset_2.col_sm_10 do |
| _input.btn.btn_default type: 'submit', value: 'Check Page' |
| end |
| end |
| end |
| end |
| _div.well.well_lg do |
| if _.post? |
| doPost( |
| { |
| url: @url, |
| tlp: @tlp, |
| version: '', # TODO @version when implemented |
| checklinks: @checklinks == 'true', |
| nochecklinks: @nochecklinks == 'true', |
| archivecheck: @archivecheck == 'true', |
| }) |
| end |
| end |
| end |
| end |
| end |
| |