feat: install user console commands and document Office independence

This commit is contained in:
admin committed 2026-10-16 12:30:46 +02:00
1 parent 6438558ea3
commit f447603af4
6 files changed
+179 -10

No files matched your search

+56
View File
@@ -291,3 +291,59 @@ Checkout-Updater nicht.
Technische Grundlagen: [pip Versionsauflösung und Installationsbericht](https://pip.pypa.io/en/stable/cli/pip_install/),
[Python venv und feste Umgebungspfade](https://docs.python.org/3/library/venv.html).
Umgebungen bleiben deshalb an ihrem Erstellungsort; nur der Zeiger wird gewechselt.
## Konsolenbefehle installieren
Einmal im Checkout `python3 scripts/install_commands.py` ausführen. Der Installer
benötigt kein sudo und verlinkt `einvoice` sowie `jr-einvoice` nach `~/.local/bin`.
Die verlinkten Starter finden den Checkout auch beim Aufruf aus einem anderen
Verzeichnis und verwenden den aktiven Update-/Rollback-Stand. Beide Befehle werden
mit `--help` geprüft. Bei Fehlern setzt der Installer seine Änderungen zurück.
Vorhandene andere Dateien/Symlinks werden unter `*.before-einvoice-<Zeit-ID>`
gesichert; bereits korrekt eingerichtete Links bleiben erhalten.
```bash
# Einmalig:
cd /home/johannes/localdev/einvoice
python3 scripts/install_commands.py
# Danach auch außerhalb des Checkouts:
einvoice --help
einvoice --customers
einvoice --update --status
einvoice --update --apply
einvoice --update --rollback
jr-einvoice --help
```
Abweichender Zielordner: `--bin-dir /absoluter/pfad`. Falls dieser Ordner nicht im
PATH steht, zeigt der Installer die passende Export-Zeile an; dauerhaft in die eigene
Shell-Konfiguration übernehmen. Auf Johannes' Rechner ist `~/.local/bin` bereits im
PATH, daher ist keine Änderung der Shell-Konfiguration nötig. Bei einem alten
Shell-Cache `rehash` (zsh) oder `hash -r` (bash) verwenden. Eine aktivierte `.venv`
kann den alten Einstieg vorziehen; mit `deactivate` die verwalteten Befehle nutzen.
Der Checkout muss am Installationsort erhalten bleiben. Nach Verschieben den
Installer am neuen Ort erneut ausführen. Die Starter benötigen bash, readlink und
Python 3; diese sind auf dem vorgesehenen Linux-System vorhanden.
## Office-Unabhängigkeit und LibreOffice
Die Quell-, Vorlagen- und Datenformate der Anwendung sind YAML, HTML/Jinja2, SVG
und Markdown. Erzeugt werden PDF/A-3, strukturiertes XML, Prüfberichte, JSON-Manifeste
und optional EML. Weder DOC/DOCX, XLS/XLSX, PPT/PPTX noch COM-/Microsoft-Office-APIs
werden verwendet. Es gibt keine Abhängigkeit von Word, Excel, Outlook oder einer
Microsoft-365-Lizenz. Die Python-Abhängigkeiten und die externen Werkzeuge
WeasyPrint/Mustang/Java benötigen keine Office-Installation.
Für diese Rechnungslösung muss deshalb beim Wechsel zu LibreOffice nichts nach
ODT/ODS konvertiert werden. ODF-Import/-Export ist keine Funktion des Tools;
Dokumentvorlagen werden weiterhin als HTML/Jinja2 bearbeitet, Daten als YAML.
Die versandfertige E-Rechnung ist das validierte PDF mit eingebettetem XML.
Dieses Original nicht in Office/LibreOffice bearbeiten oder als neues PDF exportieren,
da XML-Einbettung und PDF/A-Eigenschaften dabei verloren gehen können.
Der optionale EML-Entwurf ist eine Datei ohne Outlook-Automation. Mailprogramm,
Mailkonto, Zugang und tatsächlicher Versand liegen außerhalb der Toolchain.
Die Prüfung betrifft dieses eInvoice-Projekt; andere persönliche oder betriebliche
Office-Dateien und Microsoft-365-Dienste wurden damit nicht geprüft oder migriert.