forked from hswaw/hscloud
49 lines
992 B
Go
49 lines
992 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"mime"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/golang/glog"
|
|
|
|
"code.hackerspace.pl/hscloud/hswaw/cebulacamp/landing/static"
|
|
)
|
|
|
|
var (
|
|
flagBind string
|
|
)
|
|
|
|
func init() {
|
|
flag.Set("logtostderr", "true")
|
|
}
|
|
|
|
func main() {
|
|
flag.StringVar(&flagBind, "bind", "0.0.0.0:8080", "Address at which to serve HTTP requests")
|
|
flag.Parse()
|
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
path := r.URL.Path
|
|
if path == "/" {
|
|
path = "/index.html"
|
|
}
|
|
path = strings.TrimPrefix(path, "/")
|
|
staticPath := fmt.Sprintf("hswaw/cebulacamp/landing/%s", path)
|
|
if data, ok := static.Data[staticPath]; ok {
|
|
parts := strings.Split(path, ".")
|
|
ext := fmt.Sprintf(".%s", parts[len(parts)-1])
|
|
t := mime.TypeByExtension(ext)
|
|
w.Header().Set("Content-Type", t)
|
|
w.Write(data)
|
|
} else {
|
|
http.NotFound(w, r)
|
|
}
|
|
})
|
|
|
|
glog.Infof("Starting up at %v", flagBind)
|
|
err := http.ListenAndServe(flagBind, nil)
|
|
if err != nil {
|
|
glog.Exit(err)
|
|
}
|
|
}
|