Merge pull request #195 from colincross/docs
Give primary builder more control over automated documentation
diff --git a/glob.go b/glob.go
index 3497236..f3eb1b1 100644
--- a/glob.go
+++ b/glob.go
@@ -15,9 +15,11 @@
package blueprint
import (
+ "crypto/md5"
"fmt"
"reflect"
"sort"
+ "strings"
)
type GlobPath struct {
@@ -106,9 +108,16 @@
}
func globToFileName(pattern string, excludes []string) string {
- ret := globToString(pattern)
+ name := globToString(pattern)
+ excludeName := ""
for _, e := range excludes {
- ret += "__" + globToString(e)
+ excludeName += "__" + globToString(e)
}
- return ret + ".glob"
+
+ // Prevent file names from reaching ninja's path component limit
+ if strings.Count(name, "/")+strings.Count(excludeName, "/") > 30 {
+ excludeName = fmt.Sprintf("___%x", md5.Sum([]byte(excludeName)))
+ }
+
+ return name + excludeName + ".glob"
}