Properly fix blank --cert flag

See #1109.
This commit is contained in:
Asher 2019-10-25 11:53:20 -05:00
parent b8e6369fbe
commit 58f7f5b769
No known key found for this signature in database
GPG Key ID: D63C1EF81242354A
2 changed files with 15 additions and 3 deletions

View File

@ -87,7 +87,7 @@ index 990755c4f3..06449bb9cb 100644
+ extraBuiltinExtensionPaths: string[]; + extraBuiltinExtensionPaths: string[];
} }
diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts
index 3e48fe4ddd..e0962b8736 100644 index 3e48fe4ddd..2212ff5471 100644
--- a/src/vs/platform/environment/node/argv.ts --- a/src/vs/platform/environment/node/argv.ts
+++ b/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts
@@ -58,6 +58,8 @@ export const OPTIONS: OptionDescriptions<Required<ParsedArgs>> = { @@ -58,6 +58,8 @@ export const OPTIONS: OptionDescriptions<Required<ParsedArgs>> = {
@ -99,6 +99,15 @@ index 3e48fe4ddd..e0962b8736 100644
'list-extensions': { type: 'boolean', cat: 'e', description: localize('listExtensions', "List the installed extensions.") }, 'list-extensions': { type: 'boolean', cat: 'e', description: localize('listExtensions', "List the installed extensions.") },
'show-versions': { type: 'boolean', cat: 'e', description: localize('showVersions', "Show versions of installed extensions, when using --list-extension.") }, 'show-versions': { type: 'boolean', cat: 'e', description: localize('showVersions', "Show versions of installed extensions, when using --list-extension.") },
'category': { type: 'string', cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extension.") }, 'category': { type: 'string', cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extension.") },
@@ -185,7 +187,7 @@ export function parseArgs<T>(args: string[], options: OptionDescriptions<T>, err
delete parsedArgs[o.deprecates];
}
- if (val) {
+ if (typeof val !== 'undefined') {
if (o.type === 'string[]') {
if (val && !Array.isArray(val)) {
val = [val];
diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts
index f7d207009d..5c37b52dab 100644 index f7d207009d..5c37b52dab 100644
--- a/src/vs/platform/environment/node/environmentService.ts --- a/src/vs/platform/environment/node/environmentService.ts

View File

@ -101,8 +101,11 @@ const startVscode = async (): Promise<void | void[]> => {
options.password = await generatePassword(); options.password = await generatePassword();
} }
// This is necessary since VS Code filters out empty strings. if (!options.certKey && typeof options.certKey !== "undefined") {
if (typeof options.cert === "undefined" && process.argv.indexOf("--cert") !== -1) { throw new Error(`--cert-key cannot be blank`);
} else if (options.certKey && !options.cert) {
throw new Error(`--cert-key was provided but --cert was not`);
} if (!options.cert && typeof options.cert !== "undefined") {
const { cert, certKey } = await generateCertificate(); const { cert, certKey } = await generateCertificate();
options.cert = cert; options.cert = cert;
options.certKey = certKey; options.certKey = certKey;