From eb21a71b702e481680800faba0dd3aa354df8c54 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Tue, 3 Jul 2018 10:49:55 -0600 Subject: [PATCH] Make the builder happier with Windows environments There's two main issues with Windows environments: * Slashes * Windows still notifies about some directories we've ignored, therefore we need to filter them too It's not super pretty, but it does work. --- scripts/continuserv/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/continuserv/main.go b/scripts/continuserv/main.go index 330ddca73..fe4e5cc96 100644 --- a/scripts/continuserv/main.go +++ b/scripts/continuserv/main.go @@ -99,6 +99,7 @@ func makeWalker(base string, w *fsnotify.Watcher) filepath.WalkFunc { } // 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" || rel == "scripts/gen" || rel == "scripts/tmp" { @@ -125,6 +126,14 @@ func filter(e fsnotify.Event) bool { return false } + // 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) + if strings.Contains(filePath, "/scripts/tmp") || + strings.Contains(filePath, "/scripts/gen") || + strings.Contains(filePath, "/api/node_modules") { + return false + } + return true } @@ -149,6 +158,10 @@ func serve(w http.ResponseWriter, req *http.Request) { } b, ok = m.bytes[file] + if !ok { + b, ok = m.bytes[strings.Replace(file, "/", "\\", -1)] // Attempt a Windows lookup + } + if ok && file == "api-docs.json" { w.Header().Set("Access-Control-Allow-Origin", "*") }