diff --git a/cmd/webdav-server/main.go b/cmd/webdav-server/main.go new file mode 100644 index 0000000..b972adc --- /dev/null +++ b/cmd/webdav-server/main.go @@ -0,0 +1,32 @@ +package main + +import ( + "flag" + "fmt" + "log" + "net/http" + "os" + + "github.com/emersion/go-webdav" +) + +func main() { + var addr string + flag.StringVar(&addr, "addr", ":8080", "listening address") + flag.Usage = func() { + fmt.Fprintf(flag.CommandLine.Output(), "usage: %s [options...] [directory]\n", os.Args[0]) + flag.PrintDefaults() + } + flag.Parse() + + path := flag.Arg(0) + if path == "" { + path = "." + } + + handler := webdav.Handler{ + FileSystem: webdav.LocalFileSystem(path), + } + log.Printf("WebDAV server listening on %v", addr) + log.Fatal(http.ListenAndServe(addr, &handler)) +}