Ruby - リンクチェック - linkcheck.rb メイン
- 1. メイン
- 2. 起動
1. メイン
メインのソースです。
#!/usr/bin/env ruby
=begin
v0.1 リンク切れチェックを行う、右の形式で起動 ./linkcheck.rb URI
v0.2 チェック済の結果を保持する処理に誤りがあったので修正
v0.3 ファイル出力の試行錯誤中
v0.4 やたら post にするとエラーになるので post のないものは get で取得
実行時のパスを追加する
=end
$LOAD_PATH << File.dirname(File.expand_path(__FILE__))
require('pry')
require('openssl')
require('readconf')
require('checkparent')
require('output')
begin
OpenSSL::SSL.module_eval{ remove_const(:VERIFY_PEER) }
OpenSSL::SSL.const_set( :VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE )
starttime = Time::now()
uri = URI.parse(ARGV[0])
$version = 0.6
$OK = 0; # チェック結果 正常
$ERROR = 1; # 異常 リンク切れ
$WARNING = 2; # 警告 機械的にチェックできない
tree = { ARGV[0] => 'UNKNOWN' }
checked = {}
$selfref = [] # 自己参照あり
$result = {}
$checkID = []
$nocheck = [] # チェックしない参照先
$nocheckParent = [] # チェックしない参照元
$output = {}
$host = uri.host
readconf = ReadConf.new
readconf.execute(File.dirname(File.expand_path(__FILE__))) # コンフィグレーションファイルの読込
parent = CheckParent.new(ARGV[0])
parent.execute(ARGV[0], tree, checked) # チェック
$errorURL = {} # エラーをまとめる
$result.each do | key, value |
case value[:結果]
when 'OK', '未チェック', 'nocheck' # 正常もしくはあえてチェックしていない
next
end
$errorURL[key] = value
end
finishtime = Time::now()
output = Output.new
output.execute(starttime, finishtime, checked) # 結果出力
rescue => error
exeptlog = ExceptLog.new
binding.pry
exeptlog.execute(self, error)
exit 1
end
2. 起動
起動は
ruby /パス/ソースファイル名.rb URI
で行います。
|
|