diff --git a/pkg/manager/filename_parser.go b/pkg/manager/filename_parser.go index f586d8ff9..869948f46 100644 --- a/pkg/manager/filename_parser.go +++ b/pkg/manager/filename_parser.go @@ -335,9 +335,15 @@ func (h *sceneHolder) postParse() { } func (m parseMapper) parse(scene *models.Scene) *sceneHolder { - // perform matching on basename - // TODO - may want to handle full path at some point + + // #302 - if the pattern includes a path separator, then include the entire + // scene path in the match. Otherwise, use the default behaviour of just + // the file's basename + // must be double \ because of the regex escaping filename := filepath.Base(scene.Path) + if strings.Contains(m.regexString, `\\`) || strings.Contains(m.regexString, "/") { + filename = scene.Path + } result := m.regex.FindStringSubmatch(filename) diff --git a/ui/v2/src/components/scenes/SceneFilenameParser.tsx b/ui/v2/src/components/scenes/SceneFilenameParser.tsx index d87fb4efa..107edfcd9 100644 --- a/ui/v2/src/components/scenes/SceneFilenameParser.tsx +++ b/ui/v2/src/components/scenes/SceneFilenameParser.tsx @@ -694,7 +694,7 @@ export const SceneFilenameParser: FunctionComponent = (props: IProps) => setPattern(newValue.target.value)}