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) } }