4343fi
4444DEPLOY_HOME=$( getent passwd " $DEPLOY_USER " | cut -d: -f6 2> /dev/null || echo " " )
4545ADMIN_CONFIG=" $DEPLOY_HOME /.baudbot/.env"
46+ RENDER_ENV_SCRIPT=" $BAUDBOT_SRC /bin/render-env.sh"
47+
48+ source_env_value () {
49+ local key=" $1 "
50+ if [ -x " $RENDER_ENV_SCRIPT " ]; then
51+ BAUDBOT_ADMIN_HOME=" $DEPLOY_HOME " BAUDBOT_CONFIG_USER=" $DEPLOY_USER " " $RENDER_ENV_SCRIPT " --get " $key " 2> /dev/null || true
52+ return 0
53+ fi
54+ if [ -f " $ADMIN_CONFIG " ]; then
55+ grep -E " ^${key} =" " $ADMIN_CONFIG " | tail -n 1 | cut -d= -f2- || true
56+ return 0
57+ fi
58+ return 0
59+ }
4660
4761EXPERIMENTAL_MODE=" ${BAUDBOT_EXPERIMENTAL:- } "
48- if [ -z " $EXPERIMENTAL_MODE " ] && [ -f " $ADMIN_CONFIG " ] ; then
49- EXPERIMENTAL_MODE=$( grep ' ^ BAUDBOT_EXPERIMENTAL= ' " $ADMIN_CONFIG " | head -1 | cut -d= -f2- || true )
62+ if [ -z " $EXPERIMENTAL_MODE " ]; then
63+ EXPERIMENTAL_MODE=" $( source_env_value BAUDBOT_EXPERIMENTAL) "
5064fi
5165case " $EXPERIMENTAL_MODE " in
5266 1|true|TRUE|yes|YES|on|ON) EXPERIMENTAL_MODE=1 ;;
320334
321335echo " Deploying config..."
322336
323- # Uses admin config resolved near script start (ADMIN_CONFIG) .
337+ # Uses admin env source resolved near script start.
324338
325- if [ -f " $ADMIN_CONFIG " ]; then
339+ if [ -x " $RENDER_ENV_SCRIPT " ] && BAUDBOT_ADMIN_HOME=" $DEPLOY_HOME " BAUDBOT_CONFIG_USER=" $DEPLOY_USER " " $RENDER_ENV_SCRIPT " --check > /dev/null 2>&1 ; then
340+ if [ " $DRY_RUN " -eq 0 ]; then
341+ as_agent bash -c " mkdir -p '$BAUDBOT_HOME /.config'"
342+ # Stream rendered config directly to agent-owned target to avoid staging secrets in /tmp.
343+ BAUDBOT_ADMIN_HOME=" $DEPLOY_HOME " BAUDBOT_CONFIG_USER=" $DEPLOY_USER " " $RENDER_ENV_SCRIPT " | as_agent bash -c " cat > '$BAUDBOT_HOME /.config/.env'"
344+ as_agent chmod 600 " $BAUDBOT_HOME /.config/.env"
345+ log " ✓ env source → ~/.config/.env (600)"
346+ else
347+ log " would render env source → ~/.config/.env"
348+ fi
349+ elif [ -f " $ADMIN_CONFIG " ]; then
350+ # Backward-compatible fallback for older checkouts without render-env.sh.
326351 if [ " $DRY_RUN " -eq 0 ]; then
327352 as_agent bash -c " mkdir -p '$BAUDBOT_HOME /.config'"
328- # Stream directly to agent-owned target to avoid staging secrets in /tmp.
329353 as_agent bash -c " cat > '$BAUDBOT_HOME /.config/.env'" < " $ADMIN_CONFIG "
330354 as_agent chmod 600 " $BAUDBOT_HOME /.config/.env"
331355 log " ✓ .env → ~/.config/.env (600)"
@@ -335,9 +359,9 @@ if [ -f "$ADMIN_CONFIG" ]; then
335359else
336360 # Fallback: check if agent already has a .env (written directly by old install.sh)
337361 if as_agent test -f " $BAUDBOT_HOME /.config/.env" 2> /dev/null; then
338- log " - .env: using existing agent config (no ~/.baudbot/. env found)"
362+ log " - .env: using existing agent config (no env source found)"
339363 else
340- log " ⚠ no config found — run: baudbot config"
364+ log " ⚠ no config source found — run: baudbot config or configure 'baudbot env backend' "
341365 fi
342366fi
343367
0 commit comments