diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -9,24 +9,35 @@ import ( flag "github.com/spf13/pflag" ) +func logger(req *http.Request, err error) { + log.Printf("Err: %s, Request: %#v", err, req) +} + func main() { var ( bind string rootDir string + verbose bool ) flag.StringVarP(&bind, "bind", "b", "localhost:8080", "Address to listen to.") - flag.StringVarP(&rootDir, "root", "r", ".", "Address to listen to.") + flag.StringVarP(&rootDir, "root", "r", ".", "Root directory") + flag.BoolVarP(&verbose, "verbose", "v", false, "Verbose") flag.Parse() handler := &webdav.Handler{ FileSystem: webdav.Dir(rootDir), LockSystem: webdav.NewMemLS(), } + if verbose { + handler.Logger = logger + } root, err := filepath.Abs(rootDir) if err != nil { - log.Fatalf("Invalid path '%s': %s", rootDir, err) + log.Fatalf("Error: invalid root directory '%s': %s", rootDir, err) } log.Printf("Starting WebDAV server at '%s' on '%s'...", root, bind) - http.ListenAndServe(bind, handler) + if err = http.ListenAndServe(bind, handler); err != nil { + log.Fatalf("Error: server listen and serve failed: %s", err) + } } |
