Only perform case-insensitive search if needed

This commit is contained in:
2Shirt 2019-04-07 23:45:08 -07:00
parent e420074c83
commit b166172d10
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -35,10 +35,15 @@ def case_insensitive_search(path, item):
def find_path(path):
"""Find path case-insensitively, returns pathlib.Path obj."""
parts = pathlib.Path(path).resolve().relative_to('/').parts
real_path = '/'
path_obj = pathlib.Path(path).resolve()
# Quick check first
if path_obj.exists():
return path_obj
# Fix case
parts = path_obj.relative_to('/').parts
real_path = '/'
for part in parts:
try:
real_path = case_insensitive_search(real_path, part)