The apps were on four-space indent only because nothing pinned a style; .editorconfig is what lua-language-server reads on save, so the tree now matches the sibling repos. Manifests and the catalog regenerate from the reformatted sources.
Xteink Apps
App repository for CrossPoint Reader's Lua AppStore.
Catalog URL:
https://gitea.va.reichard.io/evan/xteink-apps/raw/branch/main/catalog.txt
Layout
catalog.txt
apps/
<AppId>/
manifest.txt
main.lua
...
scripts/update-manifests.py
catalog.txt is line-oriented:
XTEINK-CATALOG|1
<AppId>|<description>|<manifest path>|<manifest bytes>|<manifest SHA-256>
Each generated apps/<AppId>/manifest.txt contains every installable file in that app:
XTEINK-MANIFEST|1
<relative path>|<bytes>|<SHA-256>
App IDs use only letters, numbers, _, and -. Payload paths use ASCII letters, numbers, ., _, /, and -; empty files and traversal components are rejected. Descriptions come from the -- DESCRIPTION: line in each main.lua.
Compatible catalogs contain up to 64 apps, with at most 64 files, 8 MB per file, and 16 MB total per app. Catalogs are limited to 32 KB and manifests to 16 KB. Downloads are size- and SHA-256-checked. HTTPS is encrypted but the firmware does not authenticate peer certificates, so repository metadata is not protected against an active network attacker.
Adding or changing an app
-
Add or edit an
apps/<AppId>directory containingmain.lua. -
Regenerate metadata:
scripts/update-manifests.py -
Verify generated files are current:
scripts/update-manifests.py --check
Commit app payloads, manifests, and catalog.txt together. An app's root README.md is repository documentation and is intentionally excluded from its install manifest.