Optionsschalter vereinheitlicht, .sh-Skripte von überall aufrufbar

- gleiche Aufgabe = gleicher Schalter in allen Programmen:
  -c/--config (Alias --cfg), -i, -o/--outdir, --section, --format,
  -f/--force, -j, -t/--test, -y/--dry, -v
- svgconvert: -o statt -s (Alias --svgfolder), --section statt --format
  für die Sektion (Standard png), --format überschreibt das Bildformat
- webscan: --timeout und --browser nur noch lang (kollidierten mit -t/-b)
- glyphextract: -i nimmt Glyph oder Font, -e extrahiert (statt -f/-t)
- setenv.sh ermittelt das Projektverzeichnis selbst, alle .sh laden es
  relativ zum Skript; extract-font/fonttest reichen weitere Optionen durch
- Hilfetexte korrigiert, doc/README.md: Abschnitt "Gemeinsame Optionen"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-10-09 09:37:20 +02:00
co-authored by Claude Opus 5.5
parent 28f2bcdb32
commit 6bdaa62a7d
14 changed files with 113 additions and 70 deletions
+52 -14
View File
@@ -43,14 +43,37 @@ Alles läuft unter Linux und Windows, siehe [Windows](#windows).
Alle Pfade werden über Umgebungsvariablen gefunden, die `bin/setenv.sh` setzt
(`PICCREATE`, `PICCREATE_CFG`, `PICCREATE_IN`, `PICCREATE_OUT`,
`PICCREATE_FONTS`, `PICCREATE_BACKGROUNDS`, …). Der Installationspfad steht
dort fest auf `~/develop/python/piccreate`.
`PICCREATE_FONTS`, `PICCREATE_BACKGROUNDS`, …). Das Projektverzeichnis ermittelt
`setenv.sh` selbst (das Verzeichnis über `bin/`), die Skripte in `bin/` lassen
sich deshalb von überall aufrufen. Nur wer die Variablen in der eigenen Shell
braucht, lädt `setenv.sh` selbst (bash oder zsh):
```sh
cd bin
. ./setenv.sh
```
## Gemeinsame Optionen
Alle Programme benutzen für dieselbe Aufgabe denselben Schalter:
| Option | Bedeutung | piccreate | svgconvert | webscan | glyphextract |
|---------------------|----------------------------------------------------|:-:|:-:|:-:|:-:|
| `-c`, `--config` | Konfiguration aus `cfg/` (Endung `.cfg` optional) | ✓ | ✓ | ✓ | |
| `-i`, `--infile` | Eingabe (CSV, URL-Liste, Glyph oder Font) | ✓ | ✓ | ✓ | ✓ |
| `-o`, `--outdir` | Ordner für die erzeugten Bilder (Standard `$PICCREATE_OUT`) | ✓ | ✓ | ✓ | ✓ |
| `--section` | Sektion der Konfiguration mit den Bildmaßen | | ✓ | ✓ | |
| `--format` | Bildformat `jpg` oder `png` (überschreibt die Konfiguration) | | ✓ | ✓ | |
| `-f`, `--force` | vorhandene Bilder überschreiben | | ✓ | ✓ | |
| `-j`, `--jobs` | Anzahl paralleler Jobs | | ✓ | ✓ | |
| `-t`, `--test` | Testbilder erzeugen | | ✓ | | |
| `-y`, `--dry` | Probelauf, keine Dateien schreiben | ✓ | ✓ | | |
| `-v`, `--verbose` | ausführliche Ausgabe | | ✓ | ✓ | |
| `-h`, `--help` | Hilfe | ✓ | ✓ | ✓ | ✓ |
Ältere Namen funktionieren weiter: `--cfg` für `--config` und bei svgconvert
`--svgfolder` für `--outdir`.
## Bilder erzeugen
```sh
@@ -59,7 +82,7 @@ cd bin
| Option | Bedeutung |
|-------------------|------------------------------------------------------------|
| `-c`, `--cfg` | Konfiguration aus `cfg/` (Endung `.cfg` optional) |
| `-c`, `--config` | Konfiguration aus `cfg/` (Endung `.cfg` optional) |
| `-i`, `--infile` | CSV-Datei aus `in/` (Endung `.csv` optional) |
| `-o`, `--outdir` | Ausgabeverzeichnis (Standard: `$PICCREATE_OUT`) |
| `-s`, `--startfrom` | Nummerierung bei jedem Wort / Großbuchstaben neu beginnen |
@@ -129,22 +152,26 @@ Die Sektionen `[jpgs]`, `[png]` usw. beschreiben die Rastergrafiken für
## SVG in JPG/PNG umwandeln
```sh
./svgconvert.sh -c punkteraetsel --format png -p
./svgconvert.sh -c punkteraetsel -p
```
Wandelt alle SVGs in `$PICCREATE_OUT` (oder `-s <ordner>`) parallel mit
ImageMagick um. `--format` wählt die Sektion aus der Konfiguration.
Wandelt alle SVGs in `$PICCREATE_OUT` (oder `-o <ordner>`) parallel mit
ImageMagick um; die Bilder landen im selben Ordner. Breite, Höhe, Format und
Auflösung kommen aus der Sektion `--section` der Konfiguration (Standard
`[png]`, für große JPGs z. B. `--section jpgs`).
| Option | Bedeutung |
|-----------------|--------------------------------------------------------|
| `-c` | Konfiguration aus `cfg/` (Endung `.cfg` optional) |
| `--format` | Sektion/Format, z. B. `png` oder `jpgs` (Standard `jpg`) |
| `-o` | Ordner mit den SVGs, auch für die Bilder (Standard `$PICCREATE_OUT`) |
| `--section` | Sektion mit den Bildmaßen (Standard `png`) |
| `--format` | `jpg` oder `png` (überschreibt die Konfiguration) |
| `-i` | CSV aus `in/` prüfen: fehlende Bilder melden, nur diese umwandeln |
| `-j` | Anzahl paralleler Jobs (Standard 8) |
| `-b` | Hintergrundfarbe, `none` für transparent |
| `-f` | vorhandene Bilder überschreiben |
| `-p` / `-v` | Fortschrittsbalken / ausführliche Ausgabe |
| `-s` | Ordner mit den SVGs (Standard `$PICCREATE_OUT`) |
| `-t <n>` | `n` Test-SVGs erzeugen und umwandeln |
| `-y` | Probelauf ohne Umwandlung |
## Vorschaubilder von Webseiten (webscan)
@@ -182,7 +209,7 @@ besser das Chromium der Distribution):
```sh
sudo pacman -S chromium
export PICCREATE_BROWSER=/usr/bin/chromium # oder Option -b /usr/bin/chromium
export PICCREATE_BROWSER=/usr/bin/chromium # oder Option --browser /usr/bin/chromium
```
Fehlen Playwright oder der Browser, gibt `webscan.py` die passenden Befehle
@@ -208,11 +235,12 @@ Aufruf:
| `-c` | Konfiguration (Standard `webscan`) |
| `-i` | Eingabedatei aus `in/` oder mit Pfad |
| `-o` | Ausgabeverzeichnis (Standard `$PICCREATE_OUT`) |
| `--section` | Sektion mit den Bildmaßen (Standard `webscan`) |
| `--format` | `jpg` oder `png` (überschreibt die Konfiguration) |
| `-j` | Anzahl gleichzeitig geladener Seiten (Standard 4) |
| `-t` | Wartezeit pro Seite in Sekunden (Standard 20) |
| `--timeout` | Wartezeit pro Seite in Sekunden (Standard 20) |
| `-f` | vorhandene Bilder überschreiben |
| `-b` | Pfad zu einem eigenen Chromium |
| `--browser` | Pfad zu einem eigenen Chromium |
| `-v` | ausführliche Ausgabe |
Seiten ohne URL oder mit Ladefehler werden übersprungen und am Ende
@@ -248,8 +276,18 @@ Nummern als Text `x1`, `x2`, …):
./extract-glyph.sh -i ../in/ausgangsschrift/a.svg -e # nur ein Buchstabe
```
Alle drei rufen `libs/glyphextract.py` auf (`-f`, `-t` bzw. `-i [-e]`) und
schreiben nach `$PICCREATE_OUT` (oder `-o <ordner>`). Das Ergebnis
Alle drei rufen `libs/glyphextract.py` auf. Dort ist `-i` ein einzelner
Buchstabe oder ein Font (Ordner in `in/` oder Pfad); mit `-e` werden die
Glyphen für den Font extrahiert (bei einem Font zusätzlich `<name>.cfg`),
ohne `-e` entstehen Testbilder zum Prüfen in Inkscape:
```sh
python3 glyphextract.py -i ausgangsschrift -e # = extract-font.sh
python3 glyphextract.py -i ausgangsschrift # = fonttest.sh
python3 glyphextract.py -i ../in/ausgangsschrift/a.svg -e
```
Alle schreiben nach `$PICCREATE_OUT` (oder `-o <ordner>`). Das Ergebnis
(Glyph-SVGs und `<name>.cfg`) wird anschließend nach `fonts/<name>/`
übernommen. Werte wie `XSTEP` kann man danach in der `.cfg` noch von Hand
anpassen.
@@ -275,7 +313,7 @@ Beispiel:
```bat
cd bin
piccreate.bat -c punkteraetsel -i test
svgconvert.bat -c punkteraetsel --format png -p
svgconvert.bat -c punkteraetsel -p
```
Die `.bat`-Dateien nehmen das Python aus `.venv`, falls vorhanden, sonst den