Skip to content

Commit b5d9556

Browse files
cyrferjkgwm
andauthored
reading envFile: use dotenv for better support. (#1062)
* reading envFile: use dotenv for better support. Co-authored-by: Grant, John K <john.k.grant@warnerbros.com>
1 parent 2356afb commit b5d9556

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,7 @@
959959
},
960960
"dependencies": {
961961
"compare-versions": "^3.6.0",
962+
"dotenv": "^10.0.0",
962963
"lodash": "^4.17.21",
963964
"uuid": "^8.3.1",
964965
"vscode-extension-telemetry-wrapper": "^0.9.0",

src/configurationProvider.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import * as os from "os";
66
import * as path from "path";
77
import * as vscode from "vscode";
88

9+
import * as dotenv from 'dotenv';
10+
911
import { instrumentOperation, sendError, sendInfo, setUserError } from "vscode-extension-telemetry-wrapper";
1012
import * as anchor from "./anchor";
1113
import { buildWorkspace } from "./build";
@@ -721,20 +723,7 @@ function readEnvFile(file: string): { [key: string]: string } {
721723
}
722724

723725
const buffer = stripBOM(fs.readFileSync(file, "utf8"));
724-
const env: { [key: string]: string } = {};
725-
for (const line of buffer.split("\n")) {
726-
const r = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/);
727-
if (!r) {
728-
continue;
729-
}
730-
731-
let value = r[2] || "";
732-
// .env variables never overwrite existing variables (see #21169)
733-
if (value.length > 0 && value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') {
734-
value = value.replace(/\\n/gm, "\n");
735-
}
736-
env[r[1]] = value.replace(/(^['"]|['"]$)/g, "");
737-
}
726+
const env = dotenv.parse(Buffer.from(buffer));
738727

739728
return env;
740729
}

0 commit comments

Comments
 (0)