@@ -40,6 +40,10 @@ export SUPABASE_INSPECTOR_PORT="$((BASE_PORT + 13))"
4040
4141export SUPABASE_URL=" http://127.0.0.1:${SUPABASE_API_PORT} "
4242export SUPA_URL=" ${SUPABASE_URL} "
43+ export SUPABASE_EXTERNAL_URL=" ${SUPABASE_URL} "
44+ export API_URL=" ${SUPABASE_URL} "
45+ export S3_ENDPOINT=" 127.0.0.1:${SUPABASE_API_PORT} /storage/v1/s3"
46+ export STORAGE_API_URL=" ${SUPABASE_URL} /storage/v1"
4347
4448if [ " ${1:- } " = " --print-env" ]; then
4549 printf ' SUPABASE_PROJECT_ID=%s\n' " ${SUPABASE_PROJECT_ID} "
@@ -53,6 +57,10 @@ if [ "${1:-}" = "--print-env" ]; then
5357 printf ' SUPABASE_INSPECTOR_PORT=%s\n' " ${SUPABASE_INSPECTOR_PORT} "
5458 printf ' SUPABASE_URL=%s\n' " ${SUPABASE_URL} "
5559 printf ' SUPA_URL=%s\n' " ${SUPA_URL} "
60+ printf ' SUPABASE_EXTERNAL_URL=%s\n' " ${SUPABASE_EXTERNAL_URL} "
61+ printf ' API_URL=%s\n' " ${API_URL} "
62+ printf ' S3_ENDPOINT=%s\n' " ${S3_ENDPOINT} "
63+ printf ' STORAGE_API_URL=%s\n' " ${STORAGE_API_URL} "
5664 exit 0
5765fi
5866
@@ -61,4 +69,45 @@ if [ "$#" -eq 0 ]; then
6169 exit 1
6270fi
6371
72+ # For local functions runtime, override only non-reserved local endpoints so
73+ # uploads and storage calls follow the worktree port assignments.
74+ cmd=(" $@ " )
75+ if [ " ${# cmd[@]} " -ge 4 ]; then
76+ subcommand_start=-1
77+ if [ " ${cmd[0]} " = " supabase" ]; then
78+ subcommand_start=1
79+ elif [ " ${cmd[0]} " = " bunx" ] && [ " ${cmd[1]:- } " = " supabase" ]; then
80+ subcommand_start=2
81+ fi
82+
83+ if [ " ${subcommand_start} " -ge 0 ] \
84+ && [ " ${cmd[subcommand_start]:- } " = " functions" ] \
85+ && [ " ${cmd[$((subcommand_start + 1))]:- } " = " serve" ]; then
86+ has_env_file=false
87+ for arg in " ${cmd[@]} " ; do
88+ if [ " ${arg} " = " --env-file" ]; then
89+ has_env_file=true
90+ break
91+ fi
92+ done
93+
94+ if [ " ${has_env_file} " = false ]; then
95+ functions_env_file=" ${ROOT_DIR} /.context/worktree-supabase-functions.env"
96+ mkdir -p " ${ROOT_DIR} /.context"
97+ if [ -f " ${ROOT_DIR} /supabase/functions/.env" ]; then
98+ grep -vE ' ^(API_URL|S3_ENDPOINT|STORAGE_API_URL)=' " ${ROOT_DIR} /supabase/functions/.env" > " ${functions_env_file} " || true
99+ else
100+ : > " ${functions_env_file} "
101+ fi
102+ {
103+ printf ' \n'
104+ printf ' API_URL=%s\n' " ${API_URL} "
105+ printf ' S3_ENDPOINT=%s\n' " ${S3_ENDPOINT} "
106+ printf ' STORAGE_API_URL=%s\n' " ${STORAGE_API_URL} "
107+ } >> " ${functions_env_file} "
108+ exec " ${cmd[@]} " --env-file " ${functions_env_file} "
109+ fi
110+ fi
111+ fi
112+
64113exec " $@ "
0 commit comments