mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-19 07:12:36 -05:00
fix: recursive basename search in data dir fallback
This commit is contained in:
+10
-6
@@ -458,15 +458,19 @@ def resolve_local_file(
|
|||||||
if not cache_dir or not os.path.isdir(cache_dir):
|
if not cache_dir or not os.path.isdir(cache_dir):
|
||||||
continue
|
continue
|
||||||
for try_name in names_to_try:
|
for try_name in names_to_try:
|
||||||
|
# Exact relative path
|
||||||
candidate = os.path.join(cache_dir, try_name)
|
candidate = os.path.join(cache_dir, try_name)
|
||||||
if os.path.isfile(candidate):
|
if os.path.isfile(candidate):
|
||||||
return candidate, "data_dir"
|
return candidate, "data_dir"
|
||||||
if "/" in try_name:
|
# Basename walk: find file anywhere in cache tree
|
||||||
basename_candidate = os.path.join(
|
basename_targets = {
|
||||||
cache_dir, try_name.rsplit("/", 1)[-1],
|
(n.rsplit("/", 1)[-1] if "/" in n else n)
|
||||||
)
|
for n in names_to_try
|
||||||
if os.path.isfile(basename_candidate):
|
}
|
||||||
return basename_candidate, "data_dir"
|
for root, _dirs, fnames in os.walk(cache_dir):
|
||||||
|
for fn in fnames:
|
||||||
|
if fn in basename_targets:
|
||||||
|
return os.path.join(root, fn), "data_dir"
|
||||||
|
|
||||||
return None, "not_found"
|
return None, "not_found"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user