@@ -183,21 +183,24 @@ async def execute(
183
183
async with self ._lock :
184
184
if env_vars :
185
185
vars_to_set = {** global_env_vars , ** env_vars }
186
-
187
- # if there is an indent in the code, we need to add the env vars at the beginning of the code
188
- lines = code .split ("\n " )
189
- indent = 0
190
- for i , line in enumerate (lines ):
191
- if line .strip () != "" :
192
- indent = len (line ) - len (line .lstrip ())
193
- break
186
+ env_vars_snippet = ""
194
187
195
188
if self .language == "python" :
196
- code = (
197
- indent * " "
198
- + f"os.environ.set_envs_for_execution({ vars_to_set } )\n "
199
- + code
200
- )
189
+ env_vars_snippet = f"os.environ.set_envs_for_execution({ vars_to_set } )\n "
190
+ elif self .language in ["javascript" , "typescript" ]:
191
+ env_vars_snippet = "\n " .join ([f"process.env['{ k } '] = '{ v } ';" for k , v in vars_to_set .items ()])
192
+ elif self .language == "deno" :
193
+ env_vars_snippet = "\n " .join ([f"Deno.env.set('{ k } ', '{ v } ');" for k , v in vars_to_set .items ()])
194
+ elif self .language == "r" :
195
+ env_vars_snippet = "\n " .join ([f"Sys.setenv('{ k } ' = '{ v } ')" for k , v in vars_to_set .items ()])
196
+ elif self .language == "java" :
197
+ env_vars_snippet = "\n " .join ([f"System.setProperty('{ k } ', '{ v } ');" for k , v in vars_to_set .items ()])
198
+ else :
199
+ raise Exception (f"Unsupported language: { self .language } " )
200
+
201
+ print (f"Setting env vars: { env_vars_snippet } " )
202
+ request = self ._get_execute_request (str (uuid .uuid4 ()), env_vars_snippet , False )
203
+ await self ._ws .send (request )
201
204
202
205
if self .language == "typescript" :
203
206
logger .info ("Compiling TypeScript: %s" , code )
0 commit comments