package main import ( "flag" "fmt" "log" "net/http" "os" "path/filepath" "git.riedstra.us/mitch/go-website/page" ) func main() { fl := flag.NewFlagSet("Website", flag.ExitOnError) listen := fl.String("l", "0.0.0.0:8001", "Listening address") directory := fl.String("d", ".", "Directory to serve.") _ = fl.Parse(os.Args[1:]) fmt.Println("vim-go") if err := os.Chdir(*directory); err != nil { log.Fatal(err) } http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { u := r.URL.Path if u == "/" { u = "/index" } u = filepath.Join(".", u) log.Println(u) p := &page.Page{Name: u} err := p.Render(w) if err != nil { log.Println(err) http.Error(w, "Internal server error", 500) return } }) http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) _ = http.ListenAndServe(*listen, nil) }