Method: Blitz::Command::Traceroute#cmd_default

Defined in:
lib/blitz/command/traceroute.rb

#cmd_default(argv) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/blitz/command/traceroute.rb', line 10

def cmd_default argv
    args = parse_cli argv
    
    continue = true
    last_index = nil
    begin
        [ 'INT', 'STOP', 'HUP' ].each do |s| 
            trap(s) { continue = false }
        end
        
        job = ::Blitz::Traceroute.queue args
        msg "running from #{yellow(job.region)}..."
        puts
        job.result do |result|
            print_result args, result, last_index
            if not result.hops.empty?
                last_index = result.hops.size
            end
            sleep 2.0 if not continue
            continue
        end
        puts
        msg "[#{red('aborted')}]" if not continue
    rescue ::Blitz::Traceroute::Error::Region => e
        error "#{yellow(e.region)}: #{red(e.message)}"
    rescue ::Blitz::Traceroute::Error => e
        error red(e.message)
    end
end