fix: write each export as its bytes and mode

write_text translated line ends on Windows, so FirmwareDatabase.cs's
CRLF would have come out CR CR LF; it replaced the published file in
place, so a run stopped mid-write left it truncated; and it dropped the
mode, while rocknix-systems is 100755 in ROCKNIX's tree. Files are
written atomically as UTF-8 bytes, and an exporter states the mode of
any file the platform does not publish as 0644.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 18:27:22 +02:00
1 parent cbe769e74c
commit 85c2433c98
4 files changed
+55 -5

No files matched your search

+5
View File
@@ -126,6 +126,11 @@ class BaseExporter(ABC):
"""
return True
@staticmethod
def file_modes() -> dict[str, int]:
"""The mode of each file the platform publishes other than 0644."""
return {}
@staticmethod
def keys_by_system() -> bool:
"""Whether the platform finds a file through its system's own name.
+5
View File
@@ -77,6 +77,11 @@ class Exporter(BatoceraExporter):
def native_filename() -> str:
return "rocknix-systems"
@staticmethod
def file_modes() -> dict[str, int]:
# 100755 in ROCKNIX's tree at the pinned tag (git/trees 20261001).
return {"rocknix-systems": 0o755}
@staticmethod
def native_sources() -> dict[str, str]:
return {"rocknix-systems": SOURCE_URL, EMULATORS_MK: EMULATORS_URL}