whatcanGOwrong
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
//+build ignore
|
||||
|
||||
// The update command creates/updates the <html><head> elements of
|
||||
// each subpackage beneath docs so that "go get" requests redirect
|
||||
// to GitHub and other HTTP requests redirect to godoc.corp.
|
||||
//
|
||||
// Usage:
|
||||
//
|
||||
// $ cd $GOPATH/src/go.starlark.net
|
||||
// $ go run docs/update.go
|
||||
//
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.SetFlags(0)
|
||||
log.SetPrefix("update: ")
|
||||
|
||||
cwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if filepath.Base(cwd) != "go.starlark.net" {
|
||||
log.Fatalf("must run from the go.starlark.net directory")
|
||||
}
|
||||
|
||||
cmd := exec.Command("go", "list", "./...")
|
||||
cmd.Stdout = new(bytes.Buffer)
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
for _, pkg := range strings.Split(strings.TrimSpace(fmt.Sprint(cmd.Stdout)), "\n") {
|
||||
rel := strings.TrimPrefix(pkg, "go.starlark.net/") // e.g. "cmd/starlark"
|
||||
subdir := filepath.Join("docs", rel)
|
||||
if err := os.MkdirAll(subdir, 0777); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Create missing docs/$rel/index.html files.
|
||||
html := filepath.Join(subdir, "index.html")
|
||||
if _, err := os.Stat(html); os.IsNotExist(err) {
|
||||
data := strings.Replace(defaultHTML, "$PKG", pkg, -1)
|
||||
if err := os.WriteFile(html, []byte(data), 0666); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
log.Printf("created %s", html)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const defaultHTML = `<html>
|
||||
<head>
|
||||
<meta name="go-import" content="go.starlark.net git https://github.com/google/starlark-go"></meta>
|
||||
<meta http-equiv="refresh" content="0;URL='http://godoc.org/$PKG'" /></meta>
|
||||
</head>
|
||||
<body>
|
||||
Redirecting to godoc.org page for $PKG...
|
||||
</body>
|
||||
</html>
|
||||
`
|
||||
Reference in New Issue
Block a user