diff --git a/cli/src/bin/code/legacy_args.rs b/cli/src/bin/code/legacy_args.rs index 0bd92c92fd3..b61611a8057 100644 --- a/cli/src/bin/code/legacy_args.rs +++ b/cli/src/bin/code/legacy_args.rs @@ -85,6 +85,8 @@ pub fn try_parse_legacy( subcommand: ExtensionSubcommand::Install(InstallExtensionArgs { id_or_path: exts, pre_release: args.contains_key("pre-release"), + donot_include_pack_and_dependencies: args + .contains_key("do-not-include-pack-dependencies"), force: args.contains_key("force"), }), desktop_code_options, diff --git a/cli/src/commands/args.rs b/cli/src/commands/args.rs index 21efc1c6667..b9f7b3b7875 100644 --- a/cli/src/commands/args.rs +++ b/cli/src/commands/args.rs @@ -293,6 +293,9 @@ impl ExtensionSubcommand { if args.pre_release { target.push("--pre-release".to_string()); } + if args.donot_include_pack_and_dependencies { + target.push("do-not-include-pack-dependencies".to_string()); + } if args.force { target.push("--force".to_string()); } @@ -333,6 +336,10 @@ pub struct InstallExtensionArgs { #[clap(long)] pub pre_release: bool, + /// Don't include installing pack and dependencies of the extension + #[clap(long)] + pub donot_include_pack_and_dependencies: bool, + /// Update to the latest version of the extension if it's already installed. #[clap(long)] pub force: bool, diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs index d7d91a83c55..cf00bc42835 100644 --- a/cli/src/tunnels/code_server.rs +++ b/cli/src/tunnels/code_server.rs @@ -67,6 +67,7 @@ pub struct CodeServerArgs { pub show_versions: bool, pub category: Option, pub pre_release: bool, + pub donot_include_pack_and_dependencies: bool, pub force: bool, pub start_server: bool, // connection tokens diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index decb23f830f..e6f25b20b53 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -286,7 +286,7 @@ class CliMain extends Disposable { // Install Extension else if (this.argv['install-extension'] || this.argv['install-builtin-extension']) { - const installOptions: InstallOptions = { isMachineScoped: !!this.argv['do-not-sync'], installPreReleaseVersion: !!this.argv['pre-release'], profileLocation }; + const installOptions: InstallOptions = { isMachineScoped: !!this.argv['do-not-sync'], installPreReleaseVersion: !!this.argv['pre-release'], donotIncludePackAndDependencies: !!this.argv['do-not-include-pack-dependencies'], profileLocation }; return instantiationService.createInstance(ExtensionManagementCLI, new ConsoleLogger(LogLevel.Info, false)).installExtensions(this.asExtensionIdOrVSIX(this.argv['install-extension'] || []), this.asExtensionIdOrVSIX(this.argv['install-builtin-extension'] || []), installOptions, !!this.argv['force']); } diff --git a/src/vs/platform/environment/common/argv.ts b/src/vs/platform/environment/common/argv.ts index 818021ff0c1..87825ee7d2c 100644 --- a/src/vs/platform/environment/common/argv.ts +++ b/src/vs/platform/environment/common/argv.ts @@ -82,6 +82,7 @@ export interface NativeParsedArgs { 'install-builtin-extension'?: string[]; // undefined or array of 1 or more 'uninstall-extension'?: string[]; // undefined or array of 1 or more 'update-extensions'?: boolean; + 'do-not-include-pack-dependencies'?: boolean; 'locate-extension'?: string[]; // undefined or array of 1 or more 'enable-proposed-api'?: string[]; // undefined or array of 1 or more 'open-url'?: boolean; diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 379e327c646..4ef107c79bc 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -164,6 +164,7 @@ export const OPTIONS: OptionDescriptions> = { 'install-builtin-extension': { type: 'string[]' }, 'force': { type: 'boolean' }, 'do-not-sync': { type: 'boolean' }, + 'do-not-include-pack-dependencies': { type: 'boolean' }, 'trace': { type: 'boolean' }, 'trace-category-filter': { type: 'string' }, 'trace-options': { type: 'string' }, diff --git a/src/vs/server/node/remoteExtensionHostAgentCli.ts b/src/vs/server/node/remoteExtensionHostAgentCli.ts index cd1fca04f58..87ceb0788c9 100644 --- a/src/vs/server/node/remoteExtensionHostAgentCli.ts +++ b/src/vs/server/node/remoteExtensionHostAgentCli.ts @@ -152,7 +152,7 @@ class CliMain extends Disposable { // Install Extension else if (this.args['install-extension'] || this.args['install-builtin-extension']) { - const installOptions: InstallOptions = { isMachineScoped: !!this.args['do-not-sync'], installPreReleaseVersion: !!this.args['pre-release'] }; + const installOptions: InstallOptions = { isMachineScoped: !!this.args['do-not-sync'], installPreReleaseVersion: !!this.args['pre-release'], donotIncludePackAndDependencies: !!this.args['do-not-include-pack-dependencies'] }; return extensionManagementCLI.installExtensions(this.asExtensionIdOrVSIX(this.args['install-extension'] || []), this.asExtensionIdOrVSIX(this.args['install-builtin-extension'] || []), installOptions, !!this.args['force']); } diff --git a/src/vs/server/node/server.cli.ts b/src/vs/server/node/server.cli.ts index 654a769cd27..324a92bf937 100644 --- a/src/vs/server/node/server.cli.ts +++ b/src/vs/server/node/server.cli.ts @@ -71,6 +71,7 @@ const isSupportedForPipe = (optionId: keyof RemoteParsedArgs) => { case 'update-extensions': case 'list-extensions': case 'force': + case 'do-not-include-pack-dependencies': case 'show-versions': case 'category': case 'verbose': diff --git a/src/vs/server/node/serverEnvironmentService.ts b/src/vs/server/node/serverEnvironmentService.ts index 2770df603e5..b3e97edc704 100644 --- a/src/vs/server/node/serverEnvironmentService.ts +++ b/src/vs/server/node/serverEnvironmentService.ts @@ -69,6 +69,7 @@ export const serverOptions: OptionDescriptions> = { 'category': OPTIONS['category'], 'force': OPTIONS['force'], 'do-not-sync': OPTIONS['do-not-sync'], + 'do-not-include-pack-dependencies': OPTIONS['do-not-include-pack-dependencies'], 'pre-release': OPTIONS['pre-release'], 'start-server': { type: 'boolean', cat: 'e', description: nls.localize('start-server', "Start the server when installing or uninstalling extensions. To be used in combination with 'install-extension', 'install-builtin-extension' and 'uninstall-extension'.") }, @@ -194,6 +195,8 @@ export interface ServerParsedArgs { force?: boolean; // used by install-extension 'do-not-sync'?: boolean; // used by install-extension 'pre-release'?: boolean; // used by install-extension + 'do-not-include-pack-dependencies'?: boolean; // used by install-extension + 'start-server'?: boolean;