upd
This commit is contained in:
+27
-4
@@ -1,15 +1,17 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
chromeDriverBinary = "chromedriver"
|
||||
chromeDriverBinary = "chromedriver-linux64/chromedriver"
|
||||
)
|
||||
|
||||
type Chrome struct {
|
||||
@@ -25,7 +27,7 @@ func (c *Chrome) Build() error {
|
||||
|
||||
pkgTagVersion := extractVersion(pkgVersion)
|
||||
|
||||
driverVersion, err := c.parseChromeDriverVersion(pkgTagVersion)
|
||||
driverVersion := c.DriverVersion
|
||||
if err != nil {
|
||||
return fmt.Errorf("parse chromedriver version: %v", err)
|
||||
}
|
||||
@@ -120,7 +122,7 @@ func (c *Chrome) channelToBuildArgs() []string {
|
||||
func (c *Chrome) parseChromeDriverVersion(pkgVersion string) (string, error) {
|
||||
version := c.DriverVersion
|
||||
if version == LatestVersion {
|
||||
const baseUrl = "https://chromedriver.storage.googleapis.com/"
|
||||
const baseUrl = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"
|
||||
v, err := c.getLatestChromeDriver(baseUrl, pkgVersion)
|
||||
if err != nil {
|
||||
return "", err
|
||||
@@ -131,7 +133,7 @@ func (c *Chrome) parseChromeDriverVersion(pkgVersion string) (string, error) {
|
||||
}
|
||||
|
||||
func (c *Chrome) downloadChromeDriver(dir string, version string) error {
|
||||
u := fmt.Sprintf("http://chromedriver.storage.googleapis.com/%s/chromedriver_linux64.zip", version)
|
||||
u := fmt.Sprintf("https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/%s/linux64/chromedriver-linux64.zip", version)
|
||||
_, err := downloadDriver(u, chromeDriverBinary, dir)
|
||||
if err != nil {
|
||||
return fmt.Errorf("download chromedriver: %v", err)
|
||||
@@ -139,8 +141,29 @@ func (c *Chrome) downloadChromeDriver(dir string, version string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type ChromeDrivers struct {
|
||||
DriverVersions []struct {
|
||||
version string `json:"version"`
|
||||
} `json:"versions"`
|
||||
}
|
||||
|
||||
func (c *Chrome) getLatestChromeDriver(baseUrl string, pkgVersion string) (string, error) {
|
||||
data, err := sendGet(baseUrl)
|
||||
var chromeDrivers ChromeDrivers
|
||||
|
||||
// Parsing/Unmarshaling JSON data into person
|
||||
jsonerr := json.Unmarshal(data, &chromeDrivers)
|
||||
if jsonerr != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
// lastVersion := chromeDrivers.DriverVersions[len(chromeDrivers.DriverVersions)-1].version
|
||||
|
||||
// foundVersion := false
|
||||
// for _, driverVersion := range chromeDrivers.DriverVersions {
|
||||
// if driverVersion.version == pkgVersion {}
|
||||
// }
|
||||
fetchVersion := func(url string) (string, error) {
|
||||
|
||||
data, err := sendGet(url)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("read chromedriver version: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user