Sha256: 82e0f87fcd2de2061b0f5b115b43b511218d94004022f6209206777cedfa4c3e

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require 'slop'
require_relative '../packet_via_dmem/'

class PacketViaDMEM
  class CLI
    class NoFile < Error; end
    class InvalidFile < Error; end
    attr_reader :debug

    def initialize
      @opts   = opts_parse
      @debug  = @opts.debug?
    end

    def run
      file = @opts.arguments.shift
      raise NoFile, 'filename is mandatory argument' unless file
      begin
        file = File.read(file)
      rescue
        raise InvalidFile, "unable to read #{file}"
      end
      packets, headers = PacketViaDMEM.new(:received=>@opts[:received], :sent=>@opts[:sent]).parse file
      $stderr.puts headers if @opts.headers?
      puts packets
    end

    private

    def opts_parse
      Slop.parse do |o|
        o.bool '-d', '--debug', 'turn on debugging'
        o.bool '--headers', 'print headers to stderr'
        o.int  '-r', '--received', "pop BYTES from received frames, default #{PacketViaDMEM::HEADER_SIZE[:received]}", :default=>PacketViaDMEM::HEADER_SIZE[:received]
        o.int  '-s', '--sent',     "pop BYTES from senti frames, default is not to show sent frames"
        o.on   '-h', '--help' do puts o; exit; end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
packet_via_dmem-0.0.3 lib/packet_via_dmem/cli.rb
packet_via_dmem-0.0.2 lib/packet_via_dmem/cli.rb
packet_via_dmem-0.0.1 lib/packet_via_dmem/cli.rb