@@ -183,21 +183,24 @@ async def execute(
183183        async  with  self ._lock :
184184            if  env_vars :
185185                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  =  "" 
194187
195188                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 )
201204
202205            if  self .language  ==  "typescript" :
203206                logger .info ("Compiling TypeScript: %s" , code )
0 commit comments