aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Dylan Conway <35280289+dylan-conway@users.noreply.github.com> 2023-07-21 20:33:15 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-21 20:33:15 -0700
commit2323f5d08d4c1d85d65ac89460dac592a7514fbd (patch)
tree4f9a18db311ae5a672f63ca00b2dd5a8cf3f88a2 /src
parent311dffc690f346cc81dd82fb338faaf858cf9318 (diff)
downloadbun-2323f5d08d4c1d85d65ac89460dac592a7514fbd.tar.gz
bun-2323f5d08d4c1d85d65ac89460dac592a7514fbd.tar.zst
bun-2323f5d08d4c1d85d65ac89460dac592a7514fbd.zip
fix #3716 (#3733)
* don't break on comments for process env variables * break for `\r` and `\n` * don't parse process env vars
Diffstat (limited to 'src')
-rw-r--r--src/env_loader.zig23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/env_loader.zig b/src/env_loader.zig
index 3e2f371a5..bf1bf450e 100644
--- a/src/env_loader.zig
+++ b/src/env_loader.zig
@@ -329,13 +329,24 @@ pub const Loader = struct {
pub fn loadProcess(this: *Loader) void {
if (this.did_load_process) return;
- // This is a little weird because it's evidently stored line-by-line
- var source = logger.Source.initPathString("process.env", "");
-
this.map.map.ensureTotalCapacity(std.os.environ.len) catch unreachable;
- for (std.os.environ) |env| {
- source.contents = bun.span(env);
- Parser.parse(&source, this.allocator, this.map, true, true);
+ for (std.os.environ) |_env| {
+ var env = bun.span(_env);
+ if (strings.indexOfChar(env, '=')) |i| {
+ var key = env[0..i];
+ var value = env[i + 1 ..];
+ if (key.len > 0) {
+ if (value.len > 0) {
+ this.map.put(key, value) catch unreachable;
+ } else {
+ this.map.put(key, empty_string_value) catch unreachable;
+ }
+ }
+ } else {
+ if (env.len > 0) {
+ this.map.put(env, empty_string_value) catch unreachable;
+ }
+ }
}
this.did_load_process = true;