# File lib/mcollective/application/ping.rb, line 51
    def main
      client = MCollective::Client.new(options)

      start = Time.now.to_f
      times = []

      client.req("ping", "discovery") do |resp|
        times << (Time.now.to_f - start) * 1000

        puts "%-40s time=%.2f ms" % [resp[:senderid], times.last]
      end

      puts("\n\n---- ping statistics ----")

      if times.size > 0
        sum = times.inject(0){|acc,i|acc +i}
        avg = sum / times.length.to_f

        puts "%d replies max: %.2f min: %.2f avg: %.2f %s" % [times.size, times.max, times.min, avg, spark(times)]
      else
        puts("No responses received")
      end

      halt client.stats
    end