package main import ( "golang.org/x/net/webdav" "log" "net/http" "path/filepath" flag "github.com/spf13/pflag" ) func main() { var ( bind string rootDir string ) flag.StringVarP(&bind, "bind", "b", "localhost:8080", "Address to listen to.") flag.StringVarP(&rootDir, "root", "r", ".", "Address to listen to.") flag.Parse() handler := &webdav.Handler{ FileSystem: webdav.Dir(rootDir), LockSystem: webdav.NewMemLS(), } root, err := filepath.Abs(rootDir) if err != nil { log.Fatalf("Invalid path '%s': %s", rootDir, err) } log.Printf("Starting WebDAV server at '%s' on '%s'...", root, bind) http.ListenAndServe(bind, handler) }