Sha256: 9ec65376b3f8b82e66c474c1a1f59eec0584b7a1b63a5ab24ff832a1b487b7b1

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 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
      puts PacketViaDMEM.new(:received=>@opts[:received], :sent=>@opts[:sent]).parse file
    end

    private

    def opts_parse
      Slop.parse do |o|
        o.bool '-d', '--debug', 'turn on debugging'
        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

1 entries across 1 versions & 1 rubygems

Version Path
packet_via_dmem-0.0.0 lib/packet_via_dmem/cli.rb