Major rewrite
* use dep for vendoring * lets encrypt * moved web to transfer.sh-web repo * single command install * added first tests
This commit is contained in:
124
vendor/github.com/golang/gddo/gosrc/gen.go
generated
vendored
Normal file
124
vendor/github.com/golang/gddo/gosrc/gen.go
generated
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"flag"
|
||||
"go/format"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
const (
|
||||
goRepoPath = 1 << iota
|
||||
packagePath
|
||||
)
|
||||
|
||||
var tmpl = template.Must(template.New("").Parse(`// Created by go generate; DO NOT EDIT
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package gosrc
|
||||
|
||||
const (
|
||||
goRepoPath = {{.goRepoPath}}
|
||||
packagePath = {{.packagePath}}
|
||||
)
|
||||
|
||||
var pathFlags = map[string]int{
|
||||
{{range $k, $v := .pathFlags}}{{printf "%q" $k}}: {{$v}},
|
||||
{{end}} }
|
||||
|
||||
var validTLDs = map[string]bool{
|
||||
{{range $v := .validTLDs}}{{printf "%q" $v}}: true,
|
||||
{{end}} }
|
||||
`))
|
||||
|
||||
var output = flag.String("output", "data.go", "file name to write")
|
||||
|
||||
func main() {
|
||||
log.SetFlags(0)
|
||||
log.SetPrefix("gen: ")
|
||||
flag.Parse()
|
||||
if flag.NArg() != 0 {
|
||||
log.Fatal("usage: decgen [--output filename]")
|
||||
}
|
||||
|
||||
// Build map of standard repository path flags.
|
||||
|
||||
cmd := exec.Command("go", "list", "std", "cmd")
|
||||
p, err := cmd.Output()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
pathFlags := map[string]int{
|
||||
"builtin": packagePath | goRepoPath,
|
||||
"C": packagePath,
|
||||
}
|
||||
for _, path := range strings.Fields(string(p)) {
|
||||
pathFlags[path] |= packagePath | goRepoPath
|
||||
for {
|
||||
i := strings.LastIndex(path, "/")
|
||||
if i < 0 {
|
||||
break
|
||||
}
|
||||
path = path[:i]
|
||||
pathFlags[path] |= goRepoPath
|
||||
}
|
||||
}
|
||||
|
||||
// Get list of valid TLDs.
|
||||
|
||||
resp, err := http.Get("https://data.iana.org/TLD/tlds-alpha-by-domain.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
p, err = ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
var validTLDs []string
|
||||
for _, line := range strings.Split(string(p), "\n") {
|
||||
line = strings.TrimSpace(line)
|
||||
if len(line) == 0 || line[0] == '#' {
|
||||
continue
|
||||
}
|
||||
validTLDs = append(validTLDs, "."+strings.ToLower(line))
|
||||
}
|
||||
|
||||
// Generate output.
|
||||
|
||||
var buf bytes.Buffer
|
||||
err = tmpl.Execute(&buf, map[string]interface{}{
|
||||
"output": *output,
|
||||
"goRepoPath": goRepoPath,
|
||||
"packagePath": packagePath,
|
||||
"pathFlags": pathFlags,
|
||||
"validTLDs": validTLDs,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal("template error:", err)
|
||||
}
|
||||
source, err := format.Source(buf.Bytes())
|
||||
if err != nil {
|
||||
log.Fatal("source format error:", err)
|
||||
}
|
||||
fd, err := os.Create(*output)
|
||||
_, err = fd.Write(source)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user