class HawlerOptions
Attributes
options[R]
Public Class Methods
parse(args, banner="Usage:
click to toggle source
# File lib/hawleroptions.rb, line 69 def self.parse(args, banner="Usage: #{File.basename $0} [URI] [options]") op = OptionParser.new do |op| unless (banner.nil?) op.banner = banner end op.on("-b", "Bruteforce URLs (Default: #{@options.brute})") do |o| @options.brute = o end op.on("-d", "Show debug output (SIGUSR2) (Default: #{@options.debug})") do |o| @options.debug = o end op.on("-f", "Force offsite crawling (Default: #{@options.force})") do |o| @options.force = o end op.on_tail("-h", "Show help") do puts op exit end op.on("-H [HEADER]", "Append this header to all requests. May be called multiple times (Default: #{@options.headers.inspect})") do |o| if (o =~ /([^:]*):\s+?(.*)/) @options.headers[$1] = $2 else @options.headers[o] = "" end end op.on("-p", "\"Peek\" at all URIs (HEAD) (Default: #{@options.peek})") do |o| @options.peek = o end op.on("-P [IP:PORT]", "Proxy IP and port (Default: #{self.nilprint(@options.proxy)}:#{self.nilprint(@options.proxyport)})") do |o| @options.proxy, @options.proxyport = o.split(":") end op.on("-r [=DEPTH]", "Recurse. DEPTH optional (Default: #{@options.recurse}, #{self.nilprint(@options.depth)})") do |o| @options.recurse = true @options.depth = o.to_i if (o) end op.on("-s [SLEEP]", "Sleep s seconds between each request (Default: #{@options.sleep})") do |o| @options.sleep = o.to_i end op.on("-t [TYPES]", "Only download, crawl and analyze these types (Default: #{@options.types})" ) do |o| @options.types = o.to_i end op.on("-v", "Run verbosely (SIGUSR1) (Default: #{@options.verbose})") do |o| @options.verbose = o end end @options.help = op.help begin op.parse!(args) rescue OptionParser::InvalidOption => e # puts e # puts op.help # exit(1) end @options end
Private Class Methods
nilprint(o)
click to toggle source
# File lib/hawleroptions.rb, line 142 def self.nilprint(o) o.nil? ? "nil" : o end