Fix path splitting error on Windows
Due to \
being used as path separators on Windows in paths produced by os.path.join
passed to the file_entry()
function, it fails to correctly split the path string because it expects /
only.
Example:
filename:
archive/icons/fdroid-icon.png
['archive', 'icons/fdroid-icon.png']
filename:
archive\index-v2.json
['archive\\index-v2.json']
2024-03-09 00:40:24,392 CRITICAL: Unknown exception found!
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "E:\Sources\fdroid\fdroidserver-env\Scripts\fdroid.exe\__main__.py", line 7, in <module>
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\__main__.py", line 222, in main
raise e
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\__main__.py", line 203, in main
mod.main()
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\update.py", line 2436, in main
fdroidserver.index.make(archived_apps, archapks, repodirs[1], True)
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\index.py", line 125, in make
make_v2(sortedapps, apks, repodir, repodict, requestsdict,
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\index.py", line 780, in make_v2
entry["index"] = common.file_entry(index_file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Sources\fdroid\fdroidserver-env\Lib\site-packages\fdroidserver\common.py", line 563, in file_entry
meta["name"] = "/" + filename.split("/", 1)[1]
~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Note: the filename:
logging was added by me for debugging
Edited by Sergey Zolotarev