Files
Linux-Server-Management-Too…/lib
Developer 9e48a9ecf1 CRITICAL FIX: Handle grep failures with set -eo pipefail
ISSUE:
With set -eo pipefail, grep -v fails when no matches found:
  echo "" | grep -v "^$"  ← returns exit code 1

This caused database building to crash when:
- User has NO domains (line 176)
- User has NO databases (line 177)
- User info not found (line 180)

SCENARIO:
1. Process user with no domains
2. Line 176: grep -v fails with exit code 1
3. Script crashes immediately
4. Launcher fails during database building

FIXES:

Line 176: domain_count calculation
- BEFORE: grep -v "^$" | wc -l
- AFTER: grep -v "^$" | wc -l || echo 0
- Result: Returns 0 instead of crashing

Line 177: db_count calculation
- BEFORE: grep -v "^$" | wc -l
- AFTER: grep -v "^$" | wc -l || echo 0
- Result: Returns 0 instead of crashing

Line 180: home_dir extraction
- BEFORE: grep "^HOME_DIR=" | cut -d= -f2
- AFTER: grep "^HOME_DIR=" | cut -d= -f2 || echo ""
- Result: Returns empty string instead of crashing

IMPACT:
- Database building now handles edge cases correctly
- Launcher no longer crashes on users with no domains/databases
- Reference database builds successfully even for minimal setups

Testing:
- bash -n validates syntax
- Handles empty input gracefully
- Returns sensible defaults (0 for counts, empty string for paths)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 22:10:58 -04:00
..