diff options
Diffstat (limited to 'cmd/server')
| -rw-r--r-- | cmd/server/main.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cmd/server/main.go b/cmd/server/main.go new file mode 100644 index 0000000..42eb449 --- /dev/null +++ b/cmd/server/main.go @@ -0,0 +1,45 @@ +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) +} |
