| Index: sky/tools/skygo/sky_server.go
|
| diff --git a/sky/tools/skygo/sky_server.go b/sky/tools/skygo/sky_server.go
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c69fdd520420ddb5f3bc1db3d9a153bf90331fde
|
| --- /dev/null
|
| +++ b/sky/tools/skygo/sky_server.go
|
| @@ -0,0 +1,46 @@
|
| +// Copyright (c) 2014 The Chromium 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"
|
| + "net/http"
|
| + "path"
|
| + "strings"
|
| +)
|
| +
|
| +type skyHandlerRoot struct {
|
| + root string
|
| +}
|
| +
|
| +func skyHandler(root string) http.Handler {
|
| + return &skyHandlerRoot{root}
|
| +}
|
| +
|
| +func (handler *skyHandlerRoot) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
| + path := path.Join(handler.root, r.URL.Path)
|
| + if strings.HasSuffix(path, ".sky") {
|
| + w.Header().Set("Content-Type", "text/sky")
|
| + }
|
| + http.ServeFile(w, r, path)
|
| +}
|
| +
|
| +func main() {
|
| + var configuration = flag.String("t", "Release", "The target configuration (i.e. Release or Debug)")
|
| + flag.Parse()
|
| +
|
| + args := flag.Args()
|
| + root := args[0]
|
| + port := args[1]
|
| +
|
| + genRoot := path.Join(root, "out", *configuration, "gen")
|
| +
|
| + http.Handle("/", skyHandler(root))
|
| + 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"))))
|
| +
|
| + http.ListenAndServe(":" + port, nil)
|
| +}
|
|
|