...

Source file src/github.com/playwright-community/playwright-go/scripts/update-readme-versions/main.go

Documentation: github.com/playwright-community/playwright-go/scripts/update-readme-versions

     1  //go:build ignore
     2  // +build ignore
     3  
     4  package main
     5  
     6  import (
     7  	"fmt"
     8  	"io/ioutil"
     9  	"log"
    10  	"regexp"
    11  
    12  	"github.com/playwright-community/playwright-go"
    13  )
    14  
    15  func main() {
    16  	const readmePath = "README.md"
    17  	readmeContent, err := ioutil.ReadFile(readmePath)
    18  	if err != nil {
    19  		log.Fatalf("could not read readme: %v", err)
    20  	}
    21  	replaceValueInTemplate := func(name, value string) {
    22  		re := regexp.MustCompile(fmt.Sprintf("<!-- GEN:%s -->([^<]+)<!-- GEN:stop -->", name))
    23  		readmeContent = re.ReplaceAll(readmeContent, []byte(fmt.Sprintf("<!-- GEN:%s -->%s<!-- GEN:stop -->", name, value)))
    24  	}
    25  
    26  	pw, err := playwright.Run()
    27  	if err != nil {
    28  		log.Fatalf("could not run playwright: %v", err)
    29  	}
    30  	browserTypes := []playwright.BrowserType{pw.Chromium, pw.Firefox, pw.WebKit}
    31  	for _, browserType := range browserTypes {
    32  		browser, err := browserType.Launch()
    33  		if err != nil {
    34  			log.Fatalf("could not launch browser: %v", err)
    35  		}
    36  		replaceValueInTemplate(fmt.Sprintf("%s-version", browserType.Name()), browser.Version())
    37  
    38  		var badgeFormat string
    39  		switch browserType.Name() {
    40  		case "chromium":
    41  			badgeFormat = "[![Chromium version](https://img.shields.io/badge/chromium-%s-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)"
    42  		case "firefox":
    43  			badgeFormat = "[![Firefox version](https://img.shields.io/badge/firefox-%s-blue.svg?logo=mozilla-firefox)](https://www.mozilla.org/en-US/firefox/new/)"
    44  		case "webkit":
    45  			badgeFormat = "[![WebKit version](https://img.shields.io/badge/webkit-%s-blue.svg?logo=safari)](https://webkit.org/)"
    46  		}
    47  		replaceValueInTemplate(browserType.Name()+"-version-badge", fmt.Sprintf(badgeFormat, browser.Version()))
    48  
    49  		if err := browser.Close(); err != nil {
    50  			log.Fatalf("could not close browser: %v", err)
    51  		}
    52  	}
    53  	if err := ioutil.WriteFile(readmePath, readmeContent, 0644); err != nil {
    54  		log.Fatalf("could not write readme: %v", err)
    55  	}
    56  	if err := pw.Stop(); err != nil {
    57  		log.Fatalf("could not stop Playwright: %v", err)
    58  	}
    59  }
    60  

View as plain text