mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-18 17:33:30 -05:00
fix: name release assets as GitHub serves them
This commit is contained in:
1 parent
a08827257d
commit
dbd47886ce
4 files changed
+35
-4
No files matched your search
@@ -76,7 +76,7 @@ import slot as slot_mod
|
||||
import slots
|
||||
import split_pack
|
||||
from deterministic_zip import _FIXED_DATE_TIME, rebuild_zip_deterministic
|
||||
from largefiles import asset_name, load_registered_paths
|
||||
from largefiles import asset_name, load_registered_paths, published_asset_name
|
||||
from nativemode import (
|
||||
digest_algorithm,
|
||||
hash_mismatch_excludes_file,
|
||||
@@ -3226,8 +3226,14 @@ def _repo_relative(local_path: str, repo_root: str) -> str:
|
||||
|
||||
|
||||
def _release_asset_name(local_path: str, repo_root: str) -> str:
|
||||
"""The large-files asset install.py downloads for a gitignored file."""
|
||||
return asset_name(_repo_relative(local_path, repo_root), sorted(_registered(repo_root)))
|
||||
"""The large-files asset install.py downloads for a gitignored file.
|
||||
|
||||
The name GitHub serves, not the one uploaded: a space in the path came
|
||||
back as a 404 for an installer asking for it verbatim.
|
||||
"""
|
||||
return published_asset_name(
|
||||
asset_name(_repo_relative(local_path, repo_root), sorted(_registered(repo_root)))
|
||||
)
|
||||
|
||||
|
||||
def _get_repo_path(sha1: str, db: dict) -> str:
|
||||
|
||||
@@ -2018,11 +2018,12 @@ def _fetch_url(path: str) -> str:
|
||||
LARGE_FILES_RELEASE,
|
||||
asset_names,
|
||||
load_registered_paths,
|
||||
published_asset_name,
|
||||
)
|
||||
|
||||
_RELEASE_ASSET_NAMES = {
|
||||
registered: f"{REPO_URL}/releases/download/{LARGE_FILES_RELEASE}/"
|
||||
+ urllib.parse.quote(name.replace(" ", "."))
|
||||
+ urllib.parse.quote(published_asset_name(name))
|
||||
for registered, name in asset_names(load_registered_paths()).items()
|
||||
}
|
||||
return _RELEASE_ASSET_NAMES.get(path) or (
|
||||
|
||||
@@ -88,6 +88,11 @@ def asset_name(path: str, registered: Iterable[str]) -> str:
|
||||
return asset_names([*registered, path])[path]
|
||||
|
||||
|
||||
def published_asset_name(name: str) -> str:
|
||||
"""The name GitHub serves an asset under: it publishes a space as a dot."""
|
||||
return name.replace(" ", ".")
|
||||
|
||||
|
||||
def asset_candidates(name: str, registered: Iterable[str]) -> list[str]:
|
||||
"""Assets that may hold *name*, a registered path or a bare file name.
|
||||
|
||||
|
||||
Reference in new issue
Block a user