Zum Inhalt springen

CLI-Referenz

Kommandozeilenschnittstelle für die Wippy-Runtime.

Verfügbar bei allen Befehlen:

FlagKurzBeschreibung
--configKonfigurationsdatei (Standard: .wippy.yaml)
--verbose-vDebug-Logging aktivieren
--very-verboseDebug mit Stack-Traces
--console-cFarbige Konsolenausgabe
--silent-sKonsolenausgabe deaktivieren
--event-streams-eLogs an den Event-Bus streamen
--profiler-ppprof auf localhost:6060 aktivieren
--memory-limit-mSpeicherlimit (z.B. 1G, 512M)

Priorität des Speicherlimits: --memory-limit Flag > GOMEMLIMIT Umgebungsvariable > 1GB Standard.

Eine neue Lock-Datei erstellen.

Terminal-Fenster
wippy init
wippy init --src-dir ./src --modules-dir .wippy
FlagKurzStandardBeschreibung
--src-dir-d./srcQuellverzeichnis
--modules-dir.wippyModulverzeichnis
--lock-file-lwippy.lockPfad zur Lock-Datei

Die Runtime starten oder einen Befehl ausführen.

Terminal-Fenster
wippy run # Runtime starten
wippy run list # Verfügbare Befehle auflisten
wippy run test # Tests ausführen
wippy run snapshot.wapp # Aus Pack-Datei ausführen
wippy run acme/http # Modul aus dem Hub ausführen
wippy run acme/http@1.2.3 # Bestimmte Version ausführen
wippy run --exec app:worker # Runtime starten und einen einzelnen Prozess ausführen
FlagKurzBeschreibung
--override-oEntry-Werte überschreiben (namespace:entry:field=value); field kann kind sein, um die Entry-Art zu ändern
--setKonfigurationswert überschreiben (section.path=value, wiederholbar, hat Vorrang vor der Konfigurationsdatei)
--exec-xProzess ausführen und beenden (namespace:entry)
--hostTerminal-Host-ID für --exec (automatisch erkannt, wenn nur ein terminal.host existiert)
--registryRegistry-URL für Hub-Module

--set schreibt jeden Laufzeit-Konfigurationswert über die Befehlszeile, pro Blatt über .wippy.yaml zusammengeführt:

Terminal-Fenster
wippy run --set cluster.enabled=true \
--set cluster.membership.join_addrs=node-2:7946,node-3:7946 \
--set cluster.raft.bootstrap_expect=3

Werte werden nach Form konvertiert: true/false zu Bool, Ganz- und Gleitkommazahlen zu Zahlen, alles andere bleibt ein String (Zeitdauern wie 5s werden geparst, wo die Option eine erwartet).

Lua-Code auf Typfehler und Warnungen prüfen.

Terminal-Fenster
wippy lint
wippy lint --level warning
wippy lint --json
wippy lint --rules

Validiert alle Lua-Entries: function.lua, library.lua, process.lua, workflow.lua (einschließlich ihrer .bc-Varianten).

FlagKurzStandardBeschreibung
--lock-file-lwippy.lockPfad zur Lock-Datei
--levelwarningMinimaler Schweregrad: error, warning, hint
--nsFilter nach Namespace-Mustern (z.B. app, lib.*)
--codeFilter nach Fehlercodes (z.B. E0001,E0004)
--rulesfalseStyle-/Quality-Lint-Regeln aktivieren
--summaryfalseAusgabe nach Fehlercode gruppieren
--limit0Maximal angezeigte Diagnosen (0 = unbegrenzt)
--jsonfalseJSON-Ausgabe
--no-colorfalseFarbige Ausgabe deaktivieren
--cache-resetfalseLua-Cache vor dem Linten leeren

Eine Modulabhängigkeit hinzufügen.

Terminal-Fenster
wippy add acme/http
wippy add acme/http@1.2.3
wippy add acme/http@latest
FlagKurzStandardBeschreibung
--lock-file-lwippy.lockPfad zur Lock-Datei
--registryRegistry-URL

Abhängigkeiten aus der Lock-Datei installieren.

Terminal-Fenster
wippy install # Alle installieren
wippy install acme/http # Bestimmtes Modul installieren
wippy install --refresh acme/http # Bestimmtes Modul neu laden
FlagKurzStandardBeschreibung
--lock-file-lwippy.lockPfad zur Lock-Datei
--refreshfalseJedes Modul neu herunterladen, Cache umgehen
--forcefalseAlias für --refresh
--repairfalseAlias für --refresh
--registryRegistry-URL

Abhängigkeiten aktualisieren und Lock-Datei neu generieren.

Terminal-Fenster
wippy update # Alle aktualisieren
wippy update acme/http # Bestimmtes Modul aktualisieren
wippy update acme/http demo/sql # Mehrere aktualisieren
FlagKurzStandardBeschreibung
--lock-file-lwippy.lockPfad zur Lock-Datei
--src-dir-d./srcQuellverzeichnis
--modules-dir.wippyModulverzeichnis
--registryRegistry-URL

Ein Snapshot-Pack (.wapp-Datei) erstellen.

Terminal-Fenster
wippy pack snapshot.wapp
wippy pack release.wapp --description "Release 1.0"
wippy pack app.wapp --embed app:assets --bytecode **
FlagKurzBeschreibung
--lock-file-lPfad zur Lock-Datei
--description-dPack-Beschreibung
--tags-tPack-Tags (kommagetrennt)
--metaBenutzerdefinierte Metadaten (key=value)
--embedfs.directory-Entries einbetten (Muster)
--listfs.directory-Entries auflisten (Trockenlauf)
--exclude-nsNamespaces ausschließen (Muster)
--excludeEntries ausschließen (Muster)
--bytecodeLua zu Bytecode kompilieren (** für alle)

Modul im Hub veröffentlichen.

Terminal-Fenster
wippy publish
wippy publish --version 1.0.0
wippy publish --dry-run

Liest aus wippy.yaml im aktuellen Verzeichnis.

FlagBeschreibung
--versionZu veröffentlichende Version
--dry-runValidieren ohne zu veröffentlichen
--labelAls veränderbares Label statt Version veröffentlichen
--release-notesRelease-Notizen
--protectedVersion als geschützt markieren
--embedfs.directory-Entries nach ID oder Name einbetten
--configPfad zum Verzeichnis mit wippy.yaml (Standard: .)
--registryRegistry-URL
--createModul in der Registry erstellen, falls noch nicht vorhanden
--module-visibilitySichtbarkeit für neu erstellte Module (nur --create): public oder private (Standard: private)
--module-typeTyp für neu erstellte Module (nur --create): library, application, agent oder plugin (Standard: application)
--module-display-nameAnzeigename für neu erstellte Module (nur --create)

Module im Hub suchen.

Terminal-Fenster
wippy search http
wippy search "sql driver" --limit 20
wippy search auth --json
FlagStandardBeschreibung
--jsonfalseAusgabe als JSON
--limit20Maximale Ergebnisse
--registryRegistry-URL

Registry-Authentifizierung verwalten.

Terminal-Fenster
wippy auth login
wippy auth login --token YOUR_TOKEN
FlagBeschreibung
--tokenAPI-Token
--registryRegistry-URL
--localZugangsdaten lokal speichern
Terminal-Fenster
wippy auth logout
FlagBeschreibung
--registryRegistry-URL
--localLokale Zugangsdaten entfernen
Terminal-Fenster
wippy auth status
wippy auth status --json
FlagBeschreibung
--jsonAusgabe als JSON

README eines Moduls aus dem Hub abrufen.

Terminal-Fenster
wippy readme wippy/terminal
wippy readme wippy/terminal@1.2.3
wippy readme --json wippy/terminal@latest
FlagBeschreibung
--jsonAusgabe als JSON
--registryRegistry-URL (Standard: aus Zugangsdaten)

Registry-Einträge abfragen und inspizieren.

Terminal-Fenster
wippy registry list
wippy registry list --kind "function.lua.*"
wippy registry list --ns "app.*" --json
wippy registry list --meta "type=api" --meta "enabled=true"
FlagKurzBeschreibung
--kind-kNach Art filtern (Glob-Muster)
--ns-nNach Namespace filtern (Glob-Muster)
--nameNach Name filtern (Glob-Muster)
--metaNach Metadaten filtern (wiederholbar)
--jsonAusgabe als JSON
--yamlAusgabe als YAML
--lock-file-lPfad zur Lock-Datei

Metadaten-Operatoren für --meta:

OperatorBedeutung
field=valueExakte Übereinstimmung
field~regexRegex-Übereinstimmung
field*substrEnthält Teilstring
field^prefixBeginnt mit Präfix
field$suffixEndet mit Suffix
Terminal-Fenster
wippy registry show app:http:handler
wippy registry show app:config --yaml
FlagKurzBeschreibung
--field-fBestimmtes Feld anzeigen
--jsonAusgabe als JSON
--yamlAusgabe als YAML
--rawRohe Ausgabe
--lock-file-lPfad zur Lock-Datei

Versionsinformationen ausgeben.

Terminal-Fenster
wippy version
wippy version --short

Jeder process.lua- oder process.wasm-Entry kann als benannter Befehl registriert werden, indem command-Metadaten hinzugefügt werden:

entries:
- name: test_runner
kind: process.lua
meta:
command:
name: test
short: Run application tests
source: file://runner.lua
method: main
modules:
- io
- registry
- funcs

Ausführen mit:

Terminal-Fenster
wippy run test

Alle verfügbaren Befehle auflisten:

Terminal-Fenster
wippy run list
FeldErforderlichBeschreibung
nameJaBefehlsname, verwendet mit wippy run <name>
shortNeinKurzbeschreibung, angezeigt in wippy run list
mainNeinDiesen Entry als Standardbefehl markieren (automatisch ausgewählt von Packs und Hub-Modulen, die einen einzigen Befehl ausliefern)

Jede Art von Prozess-Entry funktioniert (process.lua, process.wasm). Der Befehlsname muss über alle geladenen Entries eindeutig sein. Argumente nach dem Befehlsnamen werden als String-Payloads an den Prozess übergeben.

Terminal-Fenster
# Projekt initialisieren
wippy init
wippy add wippy/http wippy/sql
wippy install
# Auf Fehler prüfen
wippy lint
# Mit Debug-Ausgabe ausführen
wippy run -c -v
# Konfiguration für lokale Entwicklung überschreiben
wippy run -o app:db:host=localhost -o app:db:port=5432
Terminal-Fenster
# Release-Pack mit Bytecode erstellen
wippy pack release.wapp --bytecode ** --exclude-ns test.**
# Aus Pack mit Speicherlimit ausführen
wippy run release.wapp -m 2G
Terminal-Fenster
# Einzelnen Prozess ausführen
wippy run --exec app:worker
# Mit aktiviertem Profiler
wippy run -p -v
# Dann: go tool pprof http://localhost:6060/debug/pprof/heap
Terminal-Fenster
# Neue Abhängigkeit hinzufügen
wippy add acme/http@latest
# Erneut herunterladen erzwingen
wippy install --force
# Bestimmtes Modul aktualisieren
wippy update acme/http
Terminal-Fenster
# Im Hub anmelden
wippy auth login
# Modul validieren
wippy publish --dry-run
# Veröffentlichen
wippy publish --version 1.0.0 --release-notes "Initial release"

.wippy.yaml für persistente Einstellungen erstellen:

logger:
encoding: console
logmanager:
min_level: -1 # debug
profiler:
enabled: true
address: localhost:6060
override:
app:gateway:addr: ":9090"
app:db:host: "localhost"