Change * to match ANY file, to confirm with unofficial public usage.

This commit is contained in:
Amy Boyd
2016-06-22 23:56:33 +01:00
parent 39ea30074e
commit cfc8de6801
2 changed files with 10 additions and 0 deletions

View File

@@ -30,6 +30,13 @@ var metaCharsRegexp = []*regexp.Regexp{
} }
func ConvertWildcardPatternToGoRegexp(pattern string) *regexp.Regexp { func ConvertWildcardPatternToGoRegexp(pattern string) *regexp.Regexp {
if pattern == "*" {
// A single * seems to be universally used to mean every file, despite the official docs
// showing that ** is correct and * should only match top-level files. However, we adapt
// to what is used in the real world to be practical.
return regexp.MustCompile(".")
}
originalPattern := pattern originalPattern := pattern
for _, r := range metaCharsRegexp { for _, r := range metaCharsRegexp {

View File

@@ -43,4 +43,7 @@ func TestConvertWildcardPatternToGoRegexp(t *testing.T) {
// Test everything together. // Test everything together.
RunConvertWildcardPatternToGoRegexp(`*/**/[a-z]/{photos,videos}/{0..5}.*`, `[^/\\]+/.+/[a-z]/(photos|videos)/[-0-9]+\.[^/\\]+`) RunConvertWildcardPatternToGoRegexp(`*/**/[a-z]/{photos,videos}/{0..5}.*`, `[^/\\]+/.+/[a-z]/(photos|videos)/[-0-9]+\.[^/\\]+`)
// Test * on it's own. It should match every path.
RunConvertWildcardPatternToGoRegexp(`*`, `.`)
} }