mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	Update vendor dir and Godeps.json with new Godep
This commit is contained in:
		
							
								
								
									
										83
									
								
								vendor/github.com/mvdan/xurls/cmd/xurls/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										83
									
								
								vendor/github.com/mvdan/xurls/cmd/xurls/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,83 +0,0 @@
 | 
			
		||||
// Copyright (c) 2015, Daniel Martí <mvdan@mvdan.cc>
 | 
			
		||||
// See LICENSE for licensing information
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bufio"
 | 
			
		||||
	"flag"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"regexp"
 | 
			
		||||
 | 
			
		||||
	"github.com/mvdan/xurls"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	matching = flag.String("m", "", "")
 | 
			
		||||
	relaxed  = flag.Bool("r", false, "")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	flag.Usage = func() {
 | 
			
		||||
		p := func(format string, a ...interface{}) {
 | 
			
		||||
			fmt.Fprintf(os.Stderr, format, a...)
 | 
			
		||||
		}
 | 
			
		||||
		p("Usage: xurls [-h] [files]\n\n")
 | 
			
		||||
		p("If no files are given, it reads from standard input.\n\n")
 | 
			
		||||
		p("   -m <regexp>   only match urls whose scheme matches a regexp\n")
 | 
			
		||||
		p("                    example: 'https?://|mailto:'\n")
 | 
			
		||||
		p("   -r            also match urls without a scheme (relaxed)\n")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func scanPath(re *regexp.Regexp, path string) error {
 | 
			
		||||
	r := os.Stdin
 | 
			
		||||
	if path != "-" {
 | 
			
		||||
		f, err := os.Open(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
		defer f.Close()
 | 
			
		||||
		r = f
 | 
			
		||||
	}
 | 
			
		||||
	scanner := bufio.NewScanner(r)
 | 
			
		||||
	scanner.Split(bufio.ScanWords)
 | 
			
		||||
	for scanner.Scan() {
 | 
			
		||||
		word := scanner.Text()
 | 
			
		||||
		for _, match := range re.FindAllString(word, -1) {
 | 
			
		||||
			fmt.Println(match)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return scanner.Err()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	flag.Parse()
 | 
			
		||||
	if *relaxed && *matching != "" {
 | 
			
		||||
		errExit(fmt.Errorf("-r and -m at the same time don't make much sense"))
 | 
			
		||||
	}
 | 
			
		||||
	re := xurls.Strict
 | 
			
		||||
	if *relaxed {
 | 
			
		||||
		re = xurls.Relaxed
 | 
			
		||||
	} else if *matching != "" {
 | 
			
		||||
		var err error
 | 
			
		||||
		if re, err = xurls.StrictMatchingScheme(*matching); err != nil {
 | 
			
		||||
			errExit(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	args := flag.Args()
 | 
			
		||||
	if len(args) == 0 {
 | 
			
		||||
		args = []string{"-"}
 | 
			
		||||
	}
 | 
			
		||||
	for _, path := range args {
 | 
			
		||||
		if err := scanPath(re, path); err != nil {
 | 
			
		||||
			errExit(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func errExit(err error) {
 | 
			
		||||
	fmt.Fprintf(os.Stderr, "%v\n", err)
 | 
			
		||||
	os.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								vendor/github.com/mvdan/xurls/generate/regexgen/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								vendor/github.com/mvdan/xurls/generate/regexgen/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,70 +0,0 @@
 | 
			
		||||
// Copyright (c) 2015, Daniel Martí <mvdan@mvdan.cc>
 | 
			
		||||
// See LICENSE for licensing information
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"text/template"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/net/idna"
 | 
			
		||||
 | 
			
		||||
	"github.com/mvdan/xurls"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const path = "regex.go"
 | 
			
		||||
 | 
			
		||||
var regexTmpl = template.Must(template.New("regex").Parse(`// Generated by regexgen
 | 
			
		||||
 | 
			
		||||
package xurls
 | 
			
		||||
 | 
			
		||||
const ({{ range $key, $value := . }}
 | 
			
		||||
	{{$key}} = ` + "`" + `{{$value}}` + "`" + `{{end}}
 | 
			
		||||
)
 | 
			
		||||
`))
 | 
			
		||||
 | 
			
		||||
func writeRegex(tlds []string) error {
 | 
			
		||||
	allTldsSet := make(map[string]struct{})
 | 
			
		||||
	add := func(tld string) {
 | 
			
		||||
		if _, e := allTldsSet[tld]; e {
 | 
			
		||||
			log.Fatalf("Duplicate TLD: %s", tld)
 | 
			
		||||
		}
 | 
			
		||||
		allTldsSet[tld] = struct{}{}
 | 
			
		||||
	}
 | 
			
		||||
	for _, tldlist := range [...][]string{tlds, xurls.PseudoTLDs} {
 | 
			
		||||
		for _, tld := range tldlist {
 | 
			
		||||
			add(tld)
 | 
			
		||||
			asciiTld, err := idna.ToASCII(tld)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			if asciiTld != tld {
 | 
			
		||||
				add(asciiTld)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	var allTlds []string
 | 
			
		||||
	for tld := range allTldsSet {
 | 
			
		||||
		allTlds = append(allTlds, tld)
 | 
			
		||||
	}
 | 
			
		||||
	sort.Strings(allTlds)
 | 
			
		||||
	f, err := os.Create(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer f.Close()
 | 
			
		||||
	return regexTmpl.Execute(f, map[string]string{
 | 
			
		||||
		"gtld       ": `(?i)(` + strings.Join(allTlds, `|`) + `)(?-i)`,
 | 
			
		||||
		"otherScheme": `(?i)(` + strings.Join(xurls.SchemesNoAuthority, `|`) + `)(?-i):`,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	log.Printf("Generating %s...", path)
 | 
			
		||||
	if err := writeRegex(xurls.TLDs); err != nil {
 | 
			
		||||
		log.Fatalf("Could not write %s: %v", path, err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										140
									
								
								vendor/github.com/mvdan/xurls/generate/tldsgen/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										140
									
								
								vendor/github.com/mvdan/xurls/generate/tldsgen/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,140 +0,0 @@
 | 
			
		||||
// Copyright (c) 2015, Daniel Martí <mvdan@mvdan.cc>
 | 
			
		||||
// See LICENSE for licensing information
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bufio"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"text/template"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const path = "tlds.go"
 | 
			
		||||
 | 
			
		||||
var tldsTmpl = template.Must(template.New("tlds").Parse(`// Generated by tldsgen
 | 
			
		||||
 | 
			
		||||
package xurls
 | 
			
		||||
 | 
			
		||||
// TLDs is a sorted list of all public top-level domains.
 | 
			
		||||
//
 | 
			
		||||
// Sources:{{range $_, $url := .URLs}}
 | 
			
		||||
//  * {{$url}}{{end}}
 | 
			
		||||
var TLDs = []string{
 | 
			
		||||
{{range $_, $tld := .TLDs}}` + "\t`" + `{{$tld}}` + "`" + `,
 | 
			
		||||
{{end}}}
 | 
			
		||||
`))
 | 
			
		||||
 | 
			
		||||
func cleanTld(tld string) string {
 | 
			
		||||
	tld = strings.ToLower(tld)
 | 
			
		||||
	if strings.HasPrefix(tld, "xn--") {
 | 
			
		||||
		return ""
 | 
			
		||||
	}
 | 
			
		||||
	return tld
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func fetchFromURL(url, pat string) {
 | 
			
		||||
	defer wg.Done()
 | 
			
		||||
	log.Printf("Fetching %s", url)
 | 
			
		||||
	resp, err := http.Get(url)
 | 
			
		||||
	if err == nil && resp.StatusCode >= 400 {
 | 
			
		||||
		err = errors.New(resp.Status)
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		errChan <- err
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
	scanner := bufio.NewScanner(resp.Body)
 | 
			
		||||
	re := regexp.MustCompile(pat)
 | 
			
		||||
	for scanner.Scan() {
 | 
			
		||||
		line := scanner.Text()
 | 
			
		||||
		tld := re.FindString(line)
 | 
			
		||||
		tld = cleanTld(tld)
 | 
			
		||||
		if tld == "" {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		tldChan <- tld
 | 
			
		||||
	}
 | 
			
		||||
	if err := scanner.Err(); err != nil {
 | 
			
		||||
		errChan <- err
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	wg      sync.WaitGroup
 | 
			
		||||
	tldChan = make(chan string)
 | 
			
		||||
	errChan = make(chan error)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func tldList() ([]string, []string, error) {
 | 
			
		||||
	var urls []string
 | 
			
		||||
	fromURL := func(url, pat string) {
 | 
			
		||||
		urls = append(urls, url)
 | 
			
		||||
		wg.Add(1)
 | 
			
		||||
		go fetchFromURL(url, pat)
 | 
			
		||||
	}
 | 
			
		||||
	fromURL("https://data.iana.org/TLD/tlds-alpha-by-domain.txt",
 | 
			
		||||
		`^[^#]+$`)
 | 
			
		||||
	fromURL("https://publicsuffix.org/list/effective_tld_names.dat",
 | 
			
		||||
		`^[^/.]+$`)
 | 
			
		||||
 | 
			
		||||
	tldSet := make(map[string]struct{})
 | 
			
		||||
	anyError := false
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			select {
 | 
			
		||||
			case tld := <-tldChan:
 | 
			
		||||
				tldSet[tld] = struct{}{}
 | 
			
		||||
			case err := <-errChan:
 | 
			
		||||
				log.Printf("%v", err)
 | 
			
		||||
				anyError = true
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
	wg.Wait()
 | 
			
		||||
 | 
			
		||||
	if anyError {
 | 
			
		||||
		return nil, nil, errors.New("there were some errors while fetching the TLDs")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tlds := make([]string, 0, len(tldSet))
 | 
			
		||||
	for tld := range tldSet {
 | 
			
		||||
		tlds = append(tlds, tld)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sort.Strings(tlds)
 | 
			
		||||
	return tlds, urls, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func writeTlds(tlds, urls []string) error {
 | 
			
		||||
	f, err := os.Create(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer f.Close()
 | 
			
		||||
	return tldsTmpl.Execute(f, struct {
 | 
			
		||||
		TLDs []string
 | 
			
		||||
		URLs []string
 | 
			
		||||
	}{
 | 
			
		||||
		TLDs: tlds,
 | 
			
		||||
		URLs: urls,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	tlds, urls, err := tldList()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("Could not get TLD list: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	log.Printf("Generating %s...", path)
 | 
			
		||||
	if err := writeTlds(tlds, urls); err != nil {
 | 
			
		||||
		log.Fatalf("Could not write path: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user