diff --git a/README.md b/README.md index 878a419b..23fecf28 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,26 @@ # desktop A Golang based cross platform executable for integrating Maputnik locally + + +### Build + +First you need a app bundle distribution of Maptunik and copy over `public` +to the `gui` folder in this project. + +``` +npm run dist +``` + +Package the the `gui` as binary assets. + +``` +go get github.com/elazarl/go-bindata-assetfs/... +go-bindata-assetfs gui/... +``` + +Install the go package. + +``` +go install +``` + diff --git a/api.go b/api.go new file mode 100644 index 00000000..5ecc68ba --- /dev/null +++ b/api.go @@ -0,0 +1,15 @@ +package main + +import ( + "encoding/json" + "net/http" +) + +// Return all current deployments +func foo(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + encoder := json.NewEncoder(w) + encoder.Encode(map[string]string{ + "foo": "bar", + }) +} diff --git a/maputnik.go b/maputnik.go new file mode 100644 index 00000000..2a3f516f --- /dev/null +++ b/maputnik.go @@ -0,0 +1,29 @@ +package main + +import ( + "net/http" + "os" + + "github.com/gorilla/handlers" + "github.com/gorilla/mux" + "github.com/urfave/cli" +) + +func main() { + app := cli.NewApp() + app.Name = "maputnik" + app.Usage = "Server for integrating Maputnik locally" + + app.Action = func(c *cli.Context) error { + gui := http.FileServer(assetFS()) + + router := mux.NewRouter().StrictSlash(true) + //router.Path("/api/v1/apps").Methods("GET").HandlerFunc(foo) + router.PathPrefix("/").Handler(http.StripPrefix("/", gui)) + + loggedRouter := handlers.LoggingHandler(os.Stdout, router) + return http.ListenAndServe(":8000", loggedRouter) + } + + app.Run(os.Args) +}