def define_options
Parser.new do |opts|
.banner = "Usage: htmlproofer [options] PATH/LINK"
ion(opts, "Input Options") do
t_option(opts, "--as-links") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--assume-extension EXT") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--directory-index-file FILENAME") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--extensions [EXT1,EXT2,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = list.nil? ? [] : list.split(",")
d
ion(opts, "Check Configuration") do
t_option(opts, "--[no-]allow-hash-href") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]allow-missing-href") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--checks [CHECK1,CHECK2,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = list.nil? ? [] : list.split(",")
d
t_option(opts, "--[no-]check-external-hash") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]check-internal-hash") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]check-sri") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]disable-external") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]enforce-https") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--root-dir <DIR>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
ion(opts, "Ignore Configuration") do
t_option(opts, "--ignore-files [FILE1,FILE2,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = if list.nil?
[]
else
list.split(",").map.each do |l|
if l.start_with?("/") && l.end_with?("/")
Regexp.new(l[1...-1])
else
l
end
end
end
d
t_option(opts, "--[no-]ignore-empty-alt") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]ignore-empty-mailto") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--[no-]ignore-missing-alt") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
t_option(opts, "--ignore-status-codes [500,401,420,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = list.nil? ? [] : list.split(",").map(&:to_i)
d
t_option(opts, "--ignore-urls [URL1, URL2,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = if list.nil?
[]
else
list.split(",").each_with_object([]) do |url, arr|
arr << to_regex?(url)
end
end
d
t_option(opts, "--only-status-codes [404,451,...]") do |long_opt_symbol, list|
@options[long_opt_symbol] = list.nil? ? [] : list.split(",")
d
t_option(opts, "--only-4xx") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg
d
ion(opts, "Transforms Configuration") do
t_option(opts, "--swap-attributes <CONFIG>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = parse_json_option("swap_attributes", arg, symbolize_names: false)
d
t_option(opts, "--swap-urls [re:string,re:string,...]") do |long_opt_symbol, arg|
@options[long_opt_symbol] = str_to_regexp_map(arg)
d
ion(opts, "Dependencies Configuration") do
t_option(opts, "--typhoeus <CONFIG>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = parse_json_option("typhoeus", arg, symbolize_names: false)
d
t_option(opts, "--hydra <CONFIG>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = parse_json_option("hydra", arg, symbolize_names: true)
d
t_option(opts, "--cache <CONFIG>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = parse_json_option("cache", arg, symbolize_names: true)
d
ion(opts, "Reporting Configuration") do
t_option(opts, "--log-level <LEVEL>") do |long_opt_symbol, arg|
@options[long_opt_symbol] = arg.to_sym
d
ion(opts, "General Configuration") do
t_option(opts, "--version") do
puts HTMLProofer::VERSION
exit(0)
d