Skip to content

Commit 0e7950a

Browse files
committed
fix(start.sh): LPB_ env loading - empty defaults don't block .env overrides
- Step 0 (lpb.conf.env): Only strip LPB_ prefix if value is non-empty AND bare name not already set - Step 2 (.env): Same check - non-empty value AND bare name not already set - Re-sync: Only set bare-name alias if shell didn't already have it Fixes: empty LPB_ defaults in lpb.conf.env (e.g. LPB_EXA_API_KEY=) no longer create empty stripped aliases that block .env values. Precedence: Shell bare name > .env LPB_ value > lpb.conf.env LPB_ value (empty values never block).
1 parent de9fa34 commit 0e7950a

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

support/start.sh

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ if [[ -f "${_stack_conf}" ]]; then
6363
key=$(echo "$line" | cut -d= -f1 | xargs 2>/dev/null || echo "$line" | cut -d= -f1)
6464
value=$(echo "$line" | cut -d= -f2- | xargs 2>/dev/null || echo "$line" | cut -d= -f2-)
6565
export "$key"="$value"
66+
# Strip LPB_ prefix to create unprefixed alias — ONLY if value is non-empty.
67+
# Empty LPB_ values must NOT block .env or shell overrides of the bare name.
6668
stripped="${key#LPB_}"
67-
if [[ -z "${!stripped+x}" ]]; then
69+
if [[ "$stripped" != "$key" && -n "$value" && -z "${!stripped+x}" ]]; then
6870
export "$stripped"="$value"
6971
fi
7072
done < "${_stack_conf}"
@@ -147,19 +149,25 @@ if [[ -n "$ENV_FILE" ]]; then
147149
case "$key" in
148150
LPB_*)
149151
export "$key"="$value"
152+
# Strip LPB_ prefix to create unprefixed alias — only if value is non-empty
153+
# AND the bare name wasn't already set (shell/env always wins over .env).
150154
stripped="${key#LPB_}"
151-
export "$stripped"="$value"
155+
if [[ -n "$value" && -z "${!stripped+x}" ]]; then
156+
export "$stripped"="$value"
157+
fi
152158
;;
153159
esac
154160
done < "$ENV_FILE"
155161
# Re-read key values after .env load
156162
WORKSPACE_DIR="${LPB_DEVCONTAINER_WORKSPACE_DIR:-$WORKSPACE_DIR}"
157163
export WORKSPACE_DIR
158164

159-
# Re-sync bare-name aliases after .env load (LPB_EXA_API_KEY → EXA_API_KEY)
160-
# These aliases were set to defaults in step 0b, but .env may have overridden
161-
# the LPB_* source — re-read now so aliases pick up the .env value.
162-
export EXA_API_KEY="${LPB_EXA_API_KEY}"
165+
# Re-sync bare-name aliases after .env load.
166+
# Only sets alias if the bare name wasn't already in the shell env
167+
# (shell env always takes priority over .env LPB_ values).
168+
if [[ -z "${EXA_API_KEY+x}" ]]; then
169+
export EXA_API_KEY="${LPB_EXA_API_KEY}"
170+
fi
163171
fi
164172

165173
# ─── 3. WORKSPACE INFO ──────────────────────────────────────────────────────

0 commit comments

Comments
 (0)