Categorygithub.com/darren/gpac
modulepackage
0.0.0-20210609082804-b56d6523a3af
Repository: https://github.com/darren/gpac.git
Documentation: pkg.go.dev

# README

gpac

PkgGoDev

This package provides a pure Go pac parser based on otto

Example usage

package main

import (
	"fmt"

	"github.com/darren/gpac"
)

var scripts = `
  function FindProxyForURL(url, host) {
    if (isPlainHostName(host)) return DIRECT;
    else return "PROXY 127.0.0.1:8080; PROXY 127.0.0.1:8081; DIRECT";
  }
`

func main() {
	pac, _ := gpac.New(scripts)

	r, _ := pac.FindProxyForURL("http://www.example.com/")
	fmt.Println(r) // returns PROXY 127.0.0.1:8080; PROXY 127.0.0.1:8081; DIRECT

	// Get issues request via a list of proxies and returns at the first request that succeeds
	resp, _ := pac.Get("http://www.example.com/")
	fmt.Println(resp.Status)
}

Simple wrapper for curl and wget

There's a simple tool that wraps curl and wget for pac file support.

Install

go get  github.com/darren/gpac/gpacw

Usage

gpacw wpad.dat curl -v http://example.com
gpacw http://wpad/wpad.dat wget -O /dev/null http://example.com

note url should be the last argument of the command or it will fail.

# Packages

No description provided by the author

# Functions

From load pac from file or url.
FromFile load pac from file.
FromURL load pac from url.
New create a parser from text content.
ParseProxy parses proxy string returned by FindProxyForURL and returns a slice of proxies.

# Structs

Parser the parsed pac instance.
Proxy is proxy type defined in pac file like PROXY 127.0.0.1:8080 SOCKS 127.0.0.1:1080.