コマンドテンプレート

optparseが面倒くさいので今後はここからコピペする。
元は瀧内さんのコードだけど、どれからパクったか忘れた。

require 'optparse'
COMMAND_LINE = "#{$0} #{ARGV.join(' ')}"
OPT = {}
opts = OptionParser.new
opts.on('-a <abc>'){|v| OPT[:abc] = v}
opts.on('-x', '--xyz <xyz>'){|v| OPT[:xyz] = v}
opts.on_tail('-v', '--version', 'Show version.'){puts(opts.ver); exit}
opts.on_tail('-h', '--help', 'Show this message.'){puts(opts.help); exit}

::Version = MyApp::VERSION
opts.order! ARGV
CMD = ARGV.shift

MyApp.new.start CMD, OPT