dd14f5d901e22f2073ea7b8d45822c29031ddaa1
Copying the library to a Pi is one rsync; copying the cache with it is not, because its three parts travel differently. covers/ is keyed by the album folder's path relative to the library root, so it survives the move. analysis/ is keyed by name:size:mtime, so it survives only if mtimes do - hence -a everywhere, and a comment saying why. index.json holds absolute source paths and must not be copied at all: scan_library() reuses a cached album on a matching (name, size, mtime) fingerprint without re-checking the path, so copying it leaves every album pointing at the dev machine and playback fails on files that are present. It is the cheap part, and the device rebuilds it on first scan while reusing everything expensive. Syncs shelf by shelf rather than the whole directory, which is what makes --delete safe: config.yml, tippen-curriculum.yml, tippen-progress.json and the cache all live in the same directory on the device and have no counterpart here. Preflight checks ssh, sizes the transfer and refuses to fill the SD card. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
Jupyter Notebook
64%
Python
24.4%
C++
7%
C
4.6%