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

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

Issue 817573003: Move wm_flow off of views and onto Sky (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « sky/tools/skydb ('k') | sky/tools/skygo/sky_server.sha1 » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/tools/skygo/sky_server.go
diff --git a/sky/tools/skygo/sky_server.go b/sky/tools/skygo/sky_server.go
index e851487c09d4ab0fb9b0670031f299077ad5349e..e42581f3d622b782bba402d37298605a4272cbb0 100644
--- a/sky/tools/skygo/sky_server.go
+++ b/sky/tools/skygo/sky_server.go
@@ -6,9 +6,12 @@ package main
import (
"flag"
+ "fmt"
"io/ioutil"
"net/http"
+ "os"
"path"
+ "path/filepath"
"strings"
)
@@ -28,25 +31,59 @@ func (handler *skyHandlerRoot) ServeHTTP(w http.ResponseWriter, r *http.Request)
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")
+ 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)
+ 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() != 2 {
+ usage()
+ }
- args := flag.Args()
- root := args[0]
- port := args[1]
+ root, _ := filepath.Abs(flag.Arg(0))
+ port := flag.Arg(1)
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")
http.HandleFunc("/echo_post", func(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
body, _ := ioutil.ReadAll(r.Body)
w.Write(body)
})
- http.Handle("/mojo/public/", http.StripPrefix("/mojo/public/", skyHandler(path.Join(genRoot, "mojo", "public"))))
- http.Handle("/mojo/services/", http.StripPrefix("/mojo/services/", skyHandler(path.Join(genRoot, "mojo", "services"))))
- http.Handle("/sky/services/", http.StripPrefix("/sky/services/", skyHandler(path.Join(genRoot, "sky", "services"))))
+
+ addMapping("/gen/", genRoot)
+
+ // FIXME: Unclear if these are correct now that we have /gen.
+ // /gen is more explicit, but also is less like how a 3rd party might
+ // deploy a sky app.
+ addMapping("/mojo/public/", path.Join(genRoot, "mojo", "public"))
+ addMapping("/mojo/services/", path.Join(genRoot, "mojo", "services"))
+ addMapping("/sky/services/", path.Join(genRoot, "sky", "services"))
http.ListenAndServe(":" + port, nil)
}
« no previous file with comments | « sky/tools/skydb ('k') | sky/tools/skygo/sky_server.sha1 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698