Bumping k8s dependencies to 1.13
This commit is contained in:
150
vendor/golang.org/x/tools/cmd/present/main.go
generated
vendored
Normal file
150
vendor/golang.org/x/tools/cmd/present/main.go
generated
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
// Copyright 2013 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 main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/build"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/tools/present"
|
||||
)
|
||||
|
||||
const basePkg = "golang.org/x/tools/cmd/present"
|
||||
|
||||
var (
|
||||
httpAddr = flag.String("http", "127.0.0.1:3999", "HTTP service address (e.g., '127.0.0.1:3999')")
|
||||
originHost = flag.String("orighost", "", "host component of web origin URL (e.g., 'localhost')")
|
||||
basePath = flag.String("base", "", "base path for slide template and static resources")
|
||||
contentPath = flag.String("content", ".", "base path for presentation content")
|
||||
usePlayground = flag.Bool("use_playground", false, "run code snippets using play.golang.org; if false, run them locally and deliver results by WebSocket transport")
|
||||
nativeClient = flag.Bool("nacl", false, "use Native Client environment playground (prevents non-Go code execution) when using local WebSocket transport")
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.BoolVar(&present.PlayEnabled, "play", true, "enable playground (permit execution of arbitrary user code)")
|
||||
flag.BoolVar(&present.NotesEnabled, "notes", false, "enable presenter notes (press 'N' from the browser to display them)")
|
||||
flag.Parse()
|
||||
|
||||
if os.Getenv("GAE_ENV") == "standard" {
|
||||
log.Print("Configuring for App Engine Standard")
|
||||
port := os.Getenv("PORT")
|
||||
if port == "" {
|
||||
port = "8080"
|
||||
}
|
||||
*httpAddr = fmt.Sprintf("0.0.0.0:%s", port)
|
||||
pwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
log.Fatalf("Couldn't get pwd: %v\n", err)
|
||||
}
|
||||
*basePath = pwd
|
||||
*usePlayground = true
|
||||
*contentPath = "./content/"
|
||||
}
|
||||
|
||||
if *basePath == "" {
|
||||
p, err := build.Default.Import(basePkg, "", build.FindOnly)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Couldn't find gopresent files: %v\n", err)
|
||||
fmt.Fprintf(os.Stderr, basePathMessage, basePkg)
|
||||
os.Exit(1)
|
||||
}
|
||||
*basePath = p.Dir
|
||||
}
|
||||
err := initTemplates(*basePath)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to parse templates: %v", err)
|
||||
}
|
||||
|
||||
ln, err := net.Listen("tcp", *httpAddr)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer ln.Close()
|
||||
|
||||
_, port, err := net.SplitHostPort(ln.Addr().String())
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
origin := &url.URL{Scheme: "http"}
|
||||
if *originHost != "" {
|
||||
origin.Host = net.JoinHostPort(*originHost, port)
|
||||
} else if ln.Addr().(*net.TCPAddr).IP.IsUnspecified() {
|
||||
name, _ := os.Hostname()
|
||||
origin.Host = net.JoinHostPort(name, port)
|
||||
} else {
|
||||
reqHost, reqPort, err := net.SplitHostPort(*httpAddr)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if reqPort == "0" {
|
||||
origin.Host = net.JoinHostPort(reqHost, port)
|
||||
} else {
|
||||
origin.Host = *httpAddr
|
||||
}
|
||||
}
|
||||
|
||||
initPlayground(*basePath, origin)
|
||||
http.Handle("/static/", http.FileServer(http.Dir(*basePath)))
|
||||
|
||||
if !ln.Addr().(*net.TCPAddr).IP.IsLoopback() &&
|
||||
present.PlayEnabled && !*nativeClient && !*usePlayground {
|
||||
log.Print(localhostWarning)
|
||||
}
|
||||
|
||||
log.Printf("Open your web browser and visit %s", origin.String())
|
||||
if present.NotesEnabled {
|
||||
log.Println("Notes are enabled, press 'N' from the browser to display them.")
|
||||
}
|
||||
log.Fatal(http.Serve(ln, nil))
|
||||
}
|
||||
|
||||
func environ(vars ...string) []string {
|
||||
env := os.Environ()
|
||||
for _, r := range vars {
|
||||
k := strings.SplitAfter(r, "=")[0]
|
||||
var found bool
|
||||
for i, v := range env {
|
||||
if strings.HasPrefix(v, k) {
|
||||
env[i] = r
|
||||
found = true
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
env = append(env, r)
|
||||
}
|
||||
}
|
||||
return env
|
||||
}
|
||||
|
||||
const basePathMessage = `
|
||||
By default, gopresent locates the slide template files and associated
|
||||
static content by looking for a %q package
|
||||
in your Go workspaces (GOPATH).
|
||||
|
||||
You may use the -base flag to specify an alternate location.
|
||||
`
|
||||
|
||||
const localhostWarning = `
|
||||
WARNING! WARNING! WARNING!
|
||||
|
||||
The present server appears to be listening on an address that is not localhost
|
||||
and is configured to run code snippets locally. Anyone with access to this address
|
||||
and port will have access to this machine as the user running present.
|
||||
|
||||
To avoid this message, listen on localhost, run with -play=false, or run with
|
||||
-play_socket=false.
|
||||
|
||||
If you don't understand this message, hit Control-C to terminate this process.
|
||||
|
||||
WARNING! WARNING! WARNING!
|
||||
`
|
Reference in New Issue
Block a user