Merge pull request 'chore: fnm als Node-Version-Manager, Regel für systemverändernde Scripts' (#18) from chore/fnm-bootstrap into main

This commit was merged in pull request #18.
This commit is contained in:
2026-05-11 19:34:46 +02:00
3 changed files with 10 additions and 3 deletions
+1
View File
@@ -25,6 +25,7 @@ Der Pfad ist frei wählbar. Das Bootstrap-Skript erstellt alle Symlinks, prueft
| `ruff` | Python-Formatter (Hook) | `pipx install ruff` | | `ruff` | Python-Formatter (Hook) | `pipx install ruff` |
| `eslint` | JS/TS/Vue-Formatter (Hook) | Projektabhängig | | `eslint` | JS/TS/Vue-Formatter (Hook) | Projektabhängig |
| `shellcheck` | Bash-Linter (Hook + /script) | `apt install shellcheck` | | `shellcheck` | Bash-Linter (Hook + /script) | `apt install shellcheck` |
| `fnm` + Node.js | Node-Version-Manager | `curl -fsSL https://fnm.vercel.app/install \| bash && fnm install --lts` |
| `markdownlint-cli2` | Markdown-Lint (Hook) | `npm install -g markdownlint-cli2` | | `markdownlint-cli2` | Markdown-Lint (Hook) | `npm install -g markdownlint-cli2` |
| `gh` | GitHub CLI | `apt install gh` | | `gh` | GitHub CLI | `apt install gh` |
| `go` + `gitea-mcp` | Gitea-MCP-Binary | `go install gitea.com/gitea/gitea-mcp@latest` | | `go` + `gitea-mcp` | Gitea-MCP-Binary | `go install gitea.com/gitea/gitea-mcp@latest` |
+8 -3
View File
@@ -73,14 +73,19 @@ else
fi fi
fi fi
if command -v fnm &>/dev/null; then
eval "$(fnm env 2>/dev/null)" || true
fi
if command -v npm &>/dev/null; then if command -v npm &>/dev/null; then
check_cmd "markdownlint-cli2" "$(markdownlint-cli2 --version 2>/dev/null | head -1 || true)" \ check_cmd "markdownlint-cli2" "$(markdownlint-cli2 --version 2>/dev/null | head -1 || true)" \
|| missing_other+=("npm install -g markdownlint-cli2") || missing_other+=("npm install -g markdownlint-cli2")
else else
if ! command -v markdownlint-cli2 &>/dev/null; then if ! command -v markdownlint-cli2 &>/dev/null; then
echo " FEHLT markdownlint-cli2 (npm nicht vorhanden)" echo " FEHLT markdownlint-cli2 (Node.js nicht vorhanden)"
echo " Node.js zuerst installieren, z.B. via nvm" missing_other+=("curl -fsSL https://fnm.vercel.app/install | bash"
missing_other+=("# Node.js installieren: https://github.com/nvm-sh/nvm" "npm install -g markdownlint-cli2") "fnm install --lts"
"npm install -g markdownlint-cli2")
else else
echo " OK markdownlint-cli2 ($(markdownlint-cli2 --version 2>/dev/null | head -1 || true))" echo " OK markdownlint-cli2 ($(markdownlint-cli2 --version 2>/dev/null | head -1 || true))"
fi fi
+1
View File
@@ -18,6 +18,7 @@ Alle Texte, Kommentare und Kommunikation auf Deutsch. Technische Begriffe und Co
- **Security by Default:** Input-Validierung, Auth-Checks, sichere Defaults. Sicherheitskritische Pfade durch Tests absichern - **Security by Default:** Input-Validierung, Auth-Checks, sichere Defaults. Sicherheitskritische Pfade durch Tests absichern
- **String-Eingaben trimmen:** Alle String-Felder beim Anlegen/Update in Services/Schemas trimmen (leading/trailing Whitespace entfernen). Leerstrings werden zu `None`, wenn das Feld optional ist. Verhindert Sortier-/Vergleichs-/Suchfehler durch unsichtbare Zeichen - **String-Eingaben trimmen:** Alle String-Felder beim Anlegen/Update in Services/Schemas trimmen (leading/trailing Whitespace entfernen). Leerstrings werden zu `None`, wenn das Feld optional ist. Verhindert Sortier-/Vergleichs-/Suchfehler durch unsichtbare Zeichen
- **Kleine Funktionen, keine Kommentare fuer Offensichtliches** - **Kleine Funktionen, keine Kommentare fuer Offensichtliches**
- **Keine systemveraendernden Scripts zum Testen ausfuehren:** Scripts die Symlinks, Berechtigungen, Pakete oder Konfiguration aendern niemals "einfach so" ausfuehren. Stattdessen mit `bash -n` (Syntax) oder gezieltem `grep`/`cat` pruefen
## Code-Konventionen ## Code-Konventionen