bin/tailstrom in tailstrom-0.0.6 vs bin/tailstrom in tailstrom-0.0.7
- old
+ new
@@ -1,53 +1,9 @@
#!/usr/bin/env ruby
$: << File.expand_path('../../lib', __FILE__)
-require 'optparse'
+require 'tailstrom/option_parser'
-def file_or_string(value)
- File.exist?(value) ? File.read(value) : value
-end
-
-options = {
- :delimiter => "\t",
- :interval => 1,
- :mode => :stat,
- :order => :desc
-}
-OptionParser.new(ARGV) {|opt|
- opt.banner = <<-END
-tail -f access.log | #{$0} [OPTIONS]
-#{$0} [OPTIONS] [file]
- END
- opt.on('-f num', Integer, 'value field') {|v| options[:field] = v }
- opt.on('-k num', Integer, 'key field') {|v| options[:key] = v }
- opt.on('-d delimiter', String, 'delimiter') {|v| options[:delimiter] = v }
- opt.on('-i interval', Integer, 'interval for stat mode') {|v| options[:interval] = v }
- opt.on('-e file_or_string', '--in-filter file_or_string', String, 'input filtering') do |v|
- options[:in_filter] = file_or_string v
- end
- opt.on('--map file_or_string', String, 'input mapping') do |v|
- options[:map] = file_or_string v
- end
- opt.on('--out-filter file_or_string', String, 'output filtering') do |v|
- options[:out_filter] = file_or_string v
- end
- opt.on('--sort file_or_string', String, 'output sorting') do |v|
- options[:sort] = file_or_string v
- end
- opt.on('--order desc|asc', String, 'sorting order (default=desc)') do |v|
- options[:order] = v.to_s.downcase == 'asc' ? :asc : :desc
- end
- opt.on('--stat', 'statistics mode (default)') { options[:mode] = :stat }
- opt.on('--print', 'print line mode') { options[:mode] = :print }
- opt.on('--version', 'show version') do
- require 'tailstrom/version'
- puts Tailstrom::VERSION
- exit 0
- end
-}.order!
-if infile = ARGV.shift
- options[:static_infile] = open(infile, 'r')
-end
+options = Tailstrom::OptionParser.new.parse ARGV
require "tailstrom/command/#{options[:mode]}"
cls = Tailstrom::Command.const_get options[:mode].to_s.capitalize
cmd = cls.new options
cmd.run