Files
romm/backend
Georges-Antoine Assi 757fafae5f feat(fs): hardlink import/export assets when possible, harden sync init
Importer (gamelist/launchbox file:// flows) and exporters (gamelist.xml,
metadata.pegasus.txt local exports) now hardlink media assets when source
and destination share a filesystem, falling back transparently to a copy
on EXDEV / EPERM / EOPNOTSUPP / EMLINK / EACCES (cross-device, FAT32,
exFAT, network mounts, etc.). Saves disk space and is effectively
instantaneous on large files (videos, manuals, miximages).

Covers keep a real copy (allow_link=False) because _store_cover resizes
the small cover in place via PIL.Image.save, which would truncate the
shared inode and corrupt the user's source image.

Also makes FSSyncHandler tolerate a missing/unwritable /romm/sync at
startup: an OSError from mkdir now logs a warning instead of crashing
the whole app at module-import time. Sync calls still fail at use time
if the mount remains broken — the right place to surface the error.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 07:38:11 -04:00
..
2026-05-17 12:43:33 -04:00
2026-05-17 17:52:14 -04:00
2026-05-17 12:43:33 -04:00
2026-02-09 17:26:21 -05:00
2026-04-11 09:58:32 -04:00
2026-04-18 12:13:42 -04:00
2026-02-03 17:09:21 -05:00
2026-04-29 14:30:48 -04:00
2025-08-02 17:55:43 -04:00
2025-07-05 19:17:40 -04:00
2026-05-17 17:39:47 -04:00
2026-05-17 17:52:14 -04:00
2026-04-30 15:22:22 -04:00