bin/len in emonti-rbkb-0.6.1.3 vs bin/len in emonti-rbkb-0.6.2
- old
+ new
@@ -1,74 +1,5 @@
#!/usr/bin/env ruby
-# Author Eric Monti (emonti at matasano)
-#
-# len prepends a binary length number in front of its input and writes it
-# raw on STDOUT
-#
-# Usage: len [options] <data | blank for stdin>
-# -h, --help Show this message
-# -v, --version Show version and exit
-# -f, --file FILENAME Input from FILENAME
-# -n, --nudge INT Add integer to length
-# -s, --size=SIZE Size of length field in bytes
-# -x, --[no-]swap Swap endianness. Default=big
-# -t, --[no-]total Include size word in size
-# -l, --length=LEN Ignore all else and use LEN
-#
-require 'rbkb'
-require 'rbkb/command_line'
+require "rbkb/cli/len"
-include RBkB::CommandLine
-
-#-------------------------------------------------------------------------------
-# Init options and arg parsing
-
-# endianness pair. index 0 is always the default
-endpair = [:big, :little]
-
-OPTS = {:nudge => 0, :size => 4, :endian => endpair[0]}
-
-arg = bkb_stdargs(nil, OPTS)
-arg = bkb_inputargs(arg, OPTS)
-
-arg.banner += " <data | blank for stdin>"
-
-#------------------------------------------------------------------------------
-# Add local options
-arg.on("-n", "--nudge INT", Numeric, "Add integer to length") do |n|
- OPTS[:nudge] += n
-end
-
-arg.on("-s", "--size=SIZE", Numeric, "Size of length field in bytes") do |s|
- bail("Size must be greater than 0") unless (OPTS[:size] = s) > 0
-end
-
-arg.on("-x", "--[no-]swap", "Swap endianness. Default=#{OPTS[:endian]}") do |x|
- OPTS[:endian] = endpair[(x)? 1 : 0]
-end
-
-arg.on("-t", "--[no-]total", "Include size word in size") do |t|
- OPTS[:tot]=t
-end
-
-arg.on("-l", "--length=LEN", Numeric, "Ignore all else and use LEN") do |l|
- OPTS[:static]=l
-end
-
-#------------------------------------------------------------------------------
-# Parse arguments
-arg.parse!(ARGV) rescue bail "Error: #{$!}\n#{arg}"
-
-OPTS[:indat] ||= ARGV.shift
-OPTS[:indat] ||= STDIN.read
-
-bail "Error: Too many arguments\n##{arg}" if ARGV.shift
-
-unless len=OPTS[:static]
- len = OPTS[:indat].size
- len += OPTS[:size] if OPTS[:tot]
- len += OPTS[:nudge]
-end
-
-STDOUT.write len.to_bytes(OPTS[:endian], OPTS[:size]) << OPTS[:indat]
-
+Rbkb::Cli::Len.run()