pithyx validate
pithyx validate prüft ein App-Projekt so, wie die Box das daraus gebaute Paket prüfen würde: pithyx.json, icon.svg, das gebaute Frontend, den Aufbau des Pakets, die Compose-Datei des Backends und ihren Image-Lock. Es schreibt nichts und braucht kein Netz. pithyx pack führt dieselben Prüfungen aus, bevor es ein Paket schreibt.
pithyx validate [project folder] [--frontend <folder>]Optionen
Abschnitt betitelt „Optionen“| Option | Wert | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--frontend |
<folder> |
string | dist |
The built frontend |
Was es prüft
Abschnitt betitelt „Was es prüft“pithyx.jsongegen das Manifest-Schema und die Regeln darüber hinaus (ID, Versionsbereiche, Fenstergrößen, Verweise, Zeitpläne, erweiterte Rechte).icon.svgmit den Icon-Regeln der Box. Eine Warnungcli.icon.template, solange es noch das Vorlagen-Icon von@pithyx/cliist.- Den Ordner des gebauten Frontends. Versteckte Dateien und Ordner (Namen, die mit
.beginnen) bleiben mit der Warnungcli.frontend.skippedaus dem Paket; Links und Spezialdateien sind Fehler (app.package.invalid, Grundentry_type); ein fehlender Ordner ist der Fehlercli.frontend.missing. - Den Aufbau des Pakets, wie
packes schreiben würde, zum Beispiel ob derentrydes Manifests unterfrontend/existiert. - Mit Backend: die Compose-Datei aus
backend.composegegen die Compose-Regeln und das Manifest, danachbackend/images.lock.json: Die Datei muss existieren (cli.lock.missing), lesbar sein (cli.lock.invalid) und genau die Images der Compose-Datei nennen (cli.lock.stale). Ein Image ohne Eintrag für amd64 oder arm64 ist eine Warnung (cli.lock.platform_missing): Die App lässt sich auf Boxen dieser Architektur nicht installieren. Ein Compose-healthcheckneben demhealthdes Manifests ist eine Warnung (cli.compose.healthcheck_redundant): Er verzögert jeden Start und beschäftigt das Backend im Leerlauf. Vorpithyx buildhat das Projekt vielleicht nurbackend/compose.dev.yaml: Dann prüftvalidatediese Quellform gegen dieselben Regeln (mitbuildstattimage) und warnt mitcli.backend.unbuilt, statt die Sperrdatei zu prüfen, braucht also kein Docker.packbraucht weiterhin die gebautecompose.yaml.
Der Lock wird nur geprüft, wenn die Compose-Datei besteht. Warnungen ändern den Exit-Code nie.
Dateien
Abschnitt betitelt „Dateien“| Datei | Zugriff |
|---|---|
pithyx.json, icon.svg |
gelesen |
der Frontend-Ordner (--frontend, Standard dist), jede Datei darunter |
gelesen |
README.md, README, LICENSE, LICENSE.md, LICENSE.txt im Projektordner |
für das Paket vorgemerkt, wenn vorhanden |
die Compose-Datei aus backend.compose, backend/images.lock.json |
gelesen |
Exit-Codes
Abschnitt betitelt „Exit-Codes“| Code | Wann |
|---|---|
| 0 | Kein Befund der Stufe Fehler. Es gibt <id> <version> is valid. aus. |
| 1 | Mindestens ein Fehler. |
| 2 | Mehr als ein Projektordner. |
Ein Ordner ohne pithyx.json scheitert mit dem Fehler cli.manifest.missing und Exit-Code 1, auch wenn er ein gebautes Frontend hat; pack und lock lehnen ihn genauso ab.
Befunde
Abschnitt betitelt „Befunde“Fehler mit den Codes der Box app.manifest.*, app.icon.invalid, app.package.invalid, app.package.layout_invalid, app.compose.* und app.elevated.unsupported, dazu die eigenen der CLI cli.manifest.missing, cli.frontend.*, cli.icon.template und cli.lock.*. Jeder mit seiner Meldung steht unter Befunde.
Beispiele
Abschnitt betitelt „Beispiele“# Das Projekt im aktuellen Ordner, Frontend nach dist/ gebautpithyx validate
# Ein anderes Projekt, dessen Build nach build/ gehtpithyx validate ../photo-app --frontend build