Skip to content

Commit 15cceb9

Browse files
committed
env var handling in languages other than python
1 parent c6dd986 commit 15cceb9

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

template/server/messaging.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)