Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2972)

Unified Diff: sky/tools/skygo/sky_server.go

Issue 1200993002: Update README.md and HACKING.md and resulting yak shave. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/tools/skygo/sky_server.go
diff --git a/sky/tools/skygo/sky_server.go b/sky/tools/skygo/sky_server.go
index 1327a19d3c6c8628ba2a5b7c18ec12d9aca33fc4..3b6ac706c651d8a2709bc37df12cb8462cd020d9 100644
--- a/sky/tools/skygo/sky_server.go
+++ b/sky/tools/skygo/sky_server.go
@@ -15,6 +15,8 @@ import (
"strings"
)
+var verbose bool = false;
+
type skyHandlerRoot struct {
root string
}
@@ -29,63 +31,70 @@ func (handler *skyHandlerRoot) ServeHTTP(w http.ResponseWriter, r *http.Request)
return
}
path := path.Join(handler.root, r.URL.Path)
+
+ // Remove this one once .sky files are gone:
if strings.HasSuffix(path, ".sky") {
w.Header().Set("Content-Type", "text/sky")
}
+
+ if strings.HasSuffix(path, ".dart") {
+ w.Header().Set("Content-Type", "application/dart")
+ }
w.Header().Set("Cache-Control", "no-cache")
http.ServeFile(w, r, path)
}
func usage() {
- fmt.Fprintf(os.Stderr, "Usage: sky_server [flags] MOJO_SRC_ROOT PORT\n\n")
- fmt.Fprintf(os.Stderr, "launches a basic http server with mappings into the\n")
- fmt.Fprintf(os.Stderr, "mojo repository for framework/service paths.\n")
- fmt.Fprintf(os.Stderr, "[flags] MUST be before arguments, because go:flag.\n\n")
+ fmt.Fprintf(os.Stderr, "Usage: sky_server [flags] MOJO_SRC_ROOT PACKAGE_ROOT\n")
+ fmt.Fprintf(os.Stderr, "Launches a basic http server with mappings into the mojo repository for framework/service paths.\n")
+ fmt.Fprintf(os.Stderr, "MOJO_SRC_ROOT must be the root of the Mojo repository.\n")
+ fmt.Fprintf(os.Stderr, "PACKAGE_ROOT must be the root of your Dart packages (e.g. out/Debug/gen/dart-pkg/packages/).\n")
flag.PrintDefaults()
os.Exit(2)
}
func addMapping(from_path string, to_path string) {
- // Print to stderr to it's more obvious what this binary does.
- fmt.Fprintf(os.Stderr, " %s -> %s\n", from_path, to_path)
+ if (verbose) {
+ fmt.Fprintf(os.Stderr, " %s -> %s\n", from_path, to_path)
+ }
http.Handle(from_path, http.StripPrefix(from_path, skyHandler(to_path)))
}
-func main() {
- var configuration = flag.String("t", "Release", "The target configuration (i.e. Release or Debug)")
-
- flag.Parse()
- flag.Usage = usage
- // The built-in go:flag is awful. It only allows short-name arguments
- // and they *must* be before any unnamed arguments. There are better ones:
- // https://godoc.org/github.com/jessevdk/go-flags
- // but for now we're using raw-go.
- if flag.NArg() != 3 {
- usage()
+func setupMappings(mojoRoot string, packageRoot string, port int) {
+ if (verbose) {
+ fmt.Fprintf(os.Stderr, "Mappings for localhost:%v:\n", port)
+ fmt.Fprintf(os.Stderr, " / -> %s\n", mojoRoot)
}
+ http.Handle("/", skyHandler(mojoRoot))
- root, _ := filepath.Abs(flag.Arg(0))
- port := flag.Arg(1)
- packageRoot := flag.Arg(2)
-
- // genRoot should not be needed once we figure out how mojom generation
- // for sdk users should work.
- genRoot := path.Join(root, "out", *configuration, "gen")
-
- fmt.Fprintf(os.Stderr, "Mappings for localhost:%s:\n", port)
-
- fmt.Fprintf(os.Stderr, " / -> %s\n", root)
- http.Handle("/", skyHandler(root))
-
- fmt.Fprintf(os.Stderr, " /echo_post -> custom echo handler\n")
+ if (verbose) {
+ fmt.Fprintf(os.Stderr, " /echo_post -> custom echo handler\n")
+ }
http.HandleFunc("/echo_post", func(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
body, _ := ioutil.ReadAll(r.Body)
w.Write(body)
})
- addMapping("/gen/", genRoot)
addMapping("/packages/", packageRoot)
+}
+
+func main() {
+ var portPtr = flag.Int("p", 8000, "The HTTP port")
+ var verbosePtr = flag.Bool("v", false, "Verbose mode. Without this flag, the default behaviour only reports errors.")
+ flag.Parse()
+ flag.Usage = usage
+ if flag.NArg() != 2 {
+ usage()
+ }
+
+ var port int = *portPtr;
+ verbose = *verbosePtr;
+
+ root, _ := filepath.Abs(flag.Arg(0))
+ packageRoot := flag.Arg(1)
+
+ setupMappings(root, packageRoot, port);
- http.ListenAndServe(":"+port, nil)
+ http.ListenAndServe(fmt.Sprintf(":%v", port), nil)
}

Powered by Google App Engine
This is Rietveld 408576698