Use filepath.To/FromSlash instead of manually replacing slashes

see https://github.com/matrix-org/matrix-doc/pull/1356#discussion_r199897557
pull/977/head
Travis Ralston 6 years ago
parent 26a62bc07f
commit 85e1962f9c

@ -98,8 +98,10 @@ func makeWalker(base string, w *fsnotify.Watcher) filepath.WalkFunc {
log.Fatalf("Failed to get relative path of %s: %v", path, err) log.Fatalf("Failed to get relative path of %s: %v", path, err)
} }
// Normalize slashes
rel = filepath.ToSlash(rel)
// skip a few things that we know don't form part of the spec // skip a few things that we know don't form part of the spec
rel = strings.Replace(rel, "\\", "/", -1) // normalize slashes (thanks to windows)
if rel == "api/node_modules" || if rel == "api/node_modules" ||
rel == "scripts/gen" || rel == "scripts/gen" ||
rel == "scripts/tmp" { rel == "scripts/tmp" {
@ -127,7 +129,7 @@ func filter(e fsnotify.Event) bool {
} }
// Forcefully ignore directories we don't care about (Windows, at least, tries to notify about some directories) // Forcefully ignore directories we don't care about (Windows, at least, tries to notify about some directories)
filePath := strings.Replace(e.Name, "\\", "/", -1) // normalize slashes (thanks to windows) filePath := filepath.ToSlash(e.Name) // normalize slashes
if strings.Contains(filePath, "/scripts/tmp") || if strings.Contains(filePath, "/scripts/tmp") ||
strings.Contains(filePath, "/scripts/gen") || strings.Contains(filePath, "/scripts/gen") ||
strings.Contains(filePath, "/api/node_modules") { strings.Contains(filePath, "/api/node_modules") {
@ -156,11 +158,7 @@ func serve(w http.ResponseWriter, req *http.Request) {
if file[0] == '/' { if file[0] == '/' {
file = file[1:] file = file[1:]
} }
b, ok = m.bytes[file] b, ok = m.bytes[filepath.FromSlash(file)] // de-normalize slashes
if !ok {
b, ok = m.bytes[strings.Replace(file, "/", "\\", -1)] // Attempt a Windows lookup
}
if ok && file == "api-docs.json" { if ok && file == "api-docs.json" {
w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Origin", "*")

Loading…
Cancel
Save