Appending a count for filenames that end up being duplicated by
sanitization. Addresses issue #46.
This commit is contained in:
parent
64e31e0c92
commit
cfd1b4bd08
17
convert.go
17
convert.go
|
@ -113,6 +113,8 @@ func findFiles(dir, prefix string, recursive bool, toc *[]Asset, ignore []*regex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
knownFuncs := make(map[string]int)
|
||||||
|
|
||||||
for _, file := range list {
|
for _, file := range list {
|
||||||
var asset Asset
|
var asset Asset
|
||||||
asset.Path = filepath.Join(dir, file.Name())
|
asset.Path = filepath.Join(dir, file.Name())
|
||||||
|
@ -150,7 +152,7 @@ func findFiles(dir, prefix string, recursive bool, toc *[]Asset, ignore []*regex
|
||||||
return fmt.Errorf("Invalid file: %v", asset.Path)
|
return fmt.Errorf("Invalid file: %v", asset.Path)
|
||||||
}
|
}
|
||||||
|
|
||||||
asset.Func = safeFunctionName(asset.Name)
|
asset.Func = safeFunctionName(asset.Name, knownFuncs)
|
||||||
asset.Path, _ = filepath.Abs(asset.Path)
|
asset.Path, _ = filepath.Abs(asset.Path)
|
||||||
*toc = append(*toc, asset)
|
*toc = append(*toc, asset)
|
||||||
}
|
}
|
||||||
|
@ -161,8 +163,10 @@ func findFiles(dir, prefix string, recursive bool, toc *[]Asset, ignore []*regex
|
||||||
var regFuncName = regexp.MustCompile(`[^a-zA-Z0-9_]`)
|
var regFuncName = regexp.MustCompile(`[^a-zA-Z0-9_]`)
|
||||||
|
|
||||||
// safeFunctionName converts the given name into a name
|
// safeFunctionName converts the given name into a name
|
||||||
// which qualifies as a valid function identifier.
|
// which qualifies as a valid function identifier. It
|
||||||
func safeFunctionName(name string) string {
|
// also compares against a known list of functions to
|
||||||
|
// prevent conflict based on name translation.
|
||||||
|
func safeFunctionName(name string, knownFuncs map[string]int) string {
|
||||||
name = strings.ToLower(name)
|
name = strings.ToLower(name)
|
||||||
name = regFuncName.ReplaceAllString(name, "_")
|
name = regFuncName.ReplaceAllString(name, "_")
|
||||||
|
|
||||||
|
@ -181,5 +185,12 @@ func safeFunctionName(name string) string {
|
||||||
name = "_" + name
|
name = "_" + name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if num, ok := knownFuncs[name]; ok {
|
||||||
|
knownFuncs[name] = num + 1
|
||||||
|
name = fmt.Sprintf("%s%d", name, num)
|
||||||
|
} else {
|
||||||
|
knownFuncs[name] = 2
|
||||||
|
}
|
||||||
|
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user