#!/usr/bin/env ruby require 'optparse' require 'user_agent_parser' require 'user_agent_parser/cli' options = {} optparse = OptionParser.new do|opts| opts.on('--name', 'Print name only') do options[:name] = true end opts.on('--version', 'Print version only') do options[:version] = true end opts.on('--major', 'Print major version only') do options[:major] = true end opts.on('--minor', 'Print minor version only') do options[:minor] = true end opts.on('--os', 'Print operating system only') do options[:os] = true end opts.on('--format format', 'Print output in specified format. The available formatters are:', ' - %n: name', ' - %v: version', ' - %M: major version', ' - %m: minor version', ' - %o: operating system' ) do |format| options[:format] = format end opts.on('-h', '--help', 'Display this screen') do puts opts exit end end optparse.parse! parser = UserAgentParser::Parser.new ARGF.each do |line| puts UserAgentParser::Cli.new(parser.parse(line), options).run! end