3.4 KiB
3.4 KiB
CLI Concept
Welche Features soll das Programm am Ende besitzen?
- Installation von Paketen
- Checksum Verification
- Suchen von Paketen
- Liste von installieren Paketen
- Verwaltung von installierten Paketen
- Update
- Uninstall
- etc.
- Dependencies von Paketen
- Portable Version
- Managed und Community package registries
- Self-hosted package registries
- Latest Package direkt vom Herstellt
Welche Techonologien werden verwendet?
| Technologie | Verwendungszweck |
|---|---|
| gRPC | Kommunikation zwischen Server un Client |
| Golang | Programmiersprache |
| urfrace/cli/v2 | Library für CLI |
Welche Befehle wird die cli haben?
Usage: lpm <Option> [Args]
Options:
push: Pusht das angegebene Package- Syntax:
lpm push <registry>/<package>:<version> - Rules:
- Falls keine Registry angegeben ist, wird zur community Registry gepusht
- Wird keine Versionsnummer angegeben, wird
latestbenutzt
- Syntax:
pull: Pullt das angegebe Package- Syntax:
lpm pull <registry>/<package>:<version> - Rules:
- Falls keine Registry angegeben ist, wird zur community Registry gepusht
- Wird keine Versionsnummer angegeben, wird
latestbenutzt
- Syntax:
list: Zeigt alle installierten pakete an- Syntax:
lpm list - Rules:
- n/a
- Syntax:
↓↓↓↓↓ @[06/11/21] ↓↓↓↓↓
search: Schickt eine suchanfrage an (an alle registry)- Syntax:
lpm search [flags] [registry/]<package> - Flags:
l,--list-versions- Zeigt alle verfügbaren versionen anc,--checksum- Zeigt die checksumme der gefundenen pakete an
- Rules:
- Werden keine Pakete gefunden wird dies dem User berichtet.
- Falls keine registry angegeben, dann werden alle registries in der RegsitryListe abgefragt
- Syntax:
--------------------------------------------------------------------------------
More coming soon...
Programming Technischer Stizzl
- Für Logging:
Tools.<Logger>.Println()nutzen- Falls das Programm einen fatalen Fehler hat und nicht weiter darf
Tools.ErrorLogger.Fatal()nutzen
- Falls das Programm einen fatalen Fehler hat und nicht weiter darf
- Ordner Struktur:
Ordner Zweck data/[TMP] Speichert daten wie z.B registry.listlogs/Speichert die logs des gesamten Tages
TODO Talk [06/11/21]
- Wie sollen Versionsnummern aufgebaut sein?
- Mein Vorschlag:
Major.Minor.Patch.Hotfix_Channel- Major: Für Große Updates (e.g BC 17->18)
- Minor: Für kleinere Feature Updates (e.g BC18.2->18.3)
- Patch: Für Bugfixes die nicht schnell erfolgen müssen
- Hotfixes: Für notwendige fixed die nicht lange warten dürfen
- Channel:
stable.beta,dev,alpha, etc.
- Mein Vorschlag:
- Suchanfragen: Werden diese an alle geschickt, oder nur an eine angegebene registry?