Sha256: b5dbe4ede57945b52e67125479a332fae7e6a5f3e589ee0a73846d7723afd048

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

# encoding: utf-8
module ProxyPacRb
  module Cli
    # Find proxy for url
    class FindProxy < Thor::Group
      include Shared

      class_option :client_ip, default: '127.0.0.1', desc: 'Client IP-address', aliases: '-c'
      class_option :time, default: Time.now.to_s, desc: 'Time to use during lookup url', aliases: '-t'
      class_option :proxy_pac, desc: 'Proxy.pac-file', aliases: '-p', required: true
      class_option :urls, type: :array, desc: 'URLs to check against proxy pac', aliases: '-u', required: true

      def pre_init
        enable_debug_mode
      end

      def find_proxy
        CliValidator.new(options).validate

        environment = ProxyPacRb::Environment.new(
          client_ip: IPAddr.new(options[:client_ip]),
          time: Time.parse(options[:time])
        )

        file = ProxyPacRb::Parser.new(environment: environment).parse(options[:proxy_pac])

        return if file.blank?

        $stderr.printf("%30s: %-s\n", 'url', 'result')
        options[:urls].each do |u|
          begin
            $stderr.printf("%30s: %-s\n", u, file.find(u))
          rescue UrlInvalidError
            $stderr.puts "You provide an invalid url \"#{u}\". Please use a correct one."
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
proxy_pac_rb-0.4.2 lib/proxy_pac_rb/cli/find_proxy.rb
proxy_pac_rb-0.4.0 lib/proxy_pac_rb/cli/find_proxy.rb