fix(auth): scripts/auth/*.sh — правильный SNIPPET path #589

Merged
Light1YT merged 1 commit from fix/auth-scripts-snippet-path into main 2026-05-26 08:39:24 +00:00
Owner

Summary

Bug: все 3 скрипта (add_user.sh, list_users.sh, remove_user.sh) имеют 2× dirname от $0, что даёт <repo>/scripts вместо <repo> → скрипт ищет snippet в несуществующем <repo>/scripts/caddy/....

Discovered 2026-05-26 QA RBAC сессия:

grep: /opt/gendesign/scripts/caddy/users.caddy.snippet: No such file or directory
ERROR: cannot find closing brace in /opt/gendesign/scripts/caddy/...

Fix

Explicit REPO_ROOT через ../.. от script-dir:

SCRIPT_DIR="$(cd "$(dirname "$(realpath "$0")")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
SNIPPET="$REPO_ROOT/caddy/users.caddy.snippet"

Понятнее чем 3× dirname + устойчиво к перемещению.

Verification

Локальный smoke:

resolved SNIPPET: /Users/anton/Птица/gendesign/caddy/users.caddy.snippet
✅ file exists

После merge — на VPS работает bash scripts/auth/list_users.sh (без manual awk-workflow из vault meta/00_credentials.md).

Context

Vault: Bug_AddUser_Sh_Snippet_Path_Fixed.

PR #426 (2026-05-23) изначально создавал 11 юзеров через add_user.sh — скрипт работал в той worktree-сессии (видимо запускался из dir где realpath давал нужный depth). После compaction context утерян, manual workflow заменил скрипт. Теперь скрипт снова рабочий — add_user.sh / remove_user.sh / list_users.sh self-service.

## Summary Bug: все 3 скрипта (`add_user.sh`, `list_users.sh`, `remove_user.sh`) имеют 2× `dirname` от `$0`, что даёт `<repo>/scripts` вместо `<repo>` → скрипт ищет snippet в несуществующем `<repo>/scripts/caddy/...`. Discovered 2026-05-26 QA RBAC сессия: ``` grep: /opt/gendesign/scripts/caddy/users.caddy.snippet: No such file or directory ERROR: cannot find closing brace in /opt/gendesign/scripts/caddy/... ``` ## Fix Explicit `REPO_ROOT` через `../..` от script-dir: ```bash SCRIPT_DIR="$(cd "$(dirname "$(realpath "$0")")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" SNIPPET="$REPO_ROOT/caddy/users.caddy.snippet" ``` Понятнее чем 3× `dirname` + устойчиво к перемещению. ## Verification Локальный smoke: ``` resolved SNIPPET: /Users/anton/Птица/gendesign/caddy/users.caddy.snippet ✅ file exists ``` После merge — на VPS работает `bash scripts/auth/list_users.sh` (без manual `awk`-workflow из vault `meta/00_credentials.md`). ## Context Vault: [[Bug_AddUser_Sh_Snippet_Path_Fixed]]. PR #426 (2026-05-23) изначально создавал 11 юзеров через add_user.sh — скрипт работал в той worktree-сессии (видимо запускался из dir где realpath давал нужный depth). После compaction context утерян, manual workflow заменил скрипт. Теперь скрипт снова рабочий — `add_user.sh` / `remove_user.sh` / `list_users.sh` self-service.
Light1YT added 1 commit 2026-05-26 08:39:23 +00:00
Bug: `dirname` x2 от $0 даёт `<repo>/scripts`, не `<repo>` →
скрипт ищет snippet в `<repo>/scripts/caddy/...` (не существует)
вместо `<repo>/caddy/users.caddy.snippet`.

Discovered 2026-05-26 QA RBAC сессия:
> grep: /opt/gendesign/scripts/caddy/users.caddy.snippet: No such file
> ERROR: cannot find closing brace in /opt/gendesign/scripts/caddy/...

Все 3 скрипта (add_user.sh, list_users.sh, remove_user.sh) имели
одинаковый баг — теперь все используют explicit REPO_ROOT:

```bash
SCRIPT_DIR="$(cd "$(dirname "$(realpath "$0")")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
SNIPPET="$REPO_ROOT/caddy/users.caddy.snippet"
```

Так понятнее (explicit `../..` от script-dir) и устойчиво к любой
глубине перемещения файла.

PR #426 (2026-05-23) изначально создавал 11 юзеров через add_user.sh
— скрипт работал в той worktree-сессии (видимо запускался из dir
где realpath давал нужный depth, e.g. через `cd scripts/auth && bash add_user.sh`),
но после compaction worktree удалён, реальный run-context утерян.

Production runs 2026-05-23 → user1..user10 + admin + kopylov были добавлены.
После 2026-05-26 manual workflow (`awk ... > tmp && mv tmp; docker restart caddy`)
заменил bash скрипт; теперь скрипт снова работает.

Detail: vault [[Bug_AddUser_Sh_Snippet_Path_Fixed]].

Verified locally: `realpath` resolves к `/Users/anton/Птица/gendesign/caddy/users.caddy.snippet` (correct).
Light1YT merged commit d954be1331 into main 2026-05-26 08:39:24 +00:00
Light1YT deleted branch fix/auth-scripts-snippet-path 2026-05-26 08:39:24 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#589
No description provided.