Skip to content
This repository has been archived by the owner on Oct 7, 2021. It is now read-only.

saucelabs/pacman_archived

 
 

Repository files navigation

pacman

This package provides a pure Go pac parser based on goja

Usage

Get package

go get github.com/saucelabs/pacman

Import package

package main

import (
 "fmt"
 "log"

 "github.com/saucelabs/pacman"
)

// Example of PAC.
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, err := pacman.New(scripts)
	if err != nil {
		log.Fatall(err)
	}

 	r, err := pac.FindProxyForURL("http://www.example.com/")
	 if err != nil {
		log.Fatall(err)
	}

 	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, err := pac.Get("http://www.example.com/")
	 if err != nil {
		log.Fatall(err)
	}

 	fmt.Println(resp.Status)
}

About

golang parser for pac file

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 90.6%
  • JavaScript 5.7%
  • Makefile 3.7%