Sha256: 074e59af1758d84ed2af77385f7347858c63a2880caf9bd21da57b175eb9192b

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 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 find_proxy
        CliValidator.new(options).validate

        client_ip = IPAddr.new(options[:client_ip])
        time      = Time.parse(options[:time])
        proxy_pac = ProxyPacFile.new(options[:proxy_pac])
        urls      = options[:urls]

        environment = ProxyPacRb::Environment.new(client_ip: client_ip, time: time)
        file        = ProxyPacRb::Parser.new(environment).source(proxy_pac.content)

        $stderr.printf("%30s: %-s\n", 'url', 'result')
        urls.each do |u|
          begin
            $stderr.printf("%30s: %-s\n", u, file.find(u))
          rescue Exceptions::UrlInvalid
            $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.3.8 lib/proxy_pac_rb/cli/find_proxy.rb
proxy_pac_rb-0.3.7 lib/proxy_pac_rb/cli/find_proxy.rb