Skip to content

Commit

Permalink
enhance the docker-compose down task instead of adding customizable c…
Browse files Browse the repository at this point in the history
…ommand
  • Loading branch information
PotatoZhou committed Feb 14, 2025
1 parent a034784 commit 931659c
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 77 deletions.
63 changes: 1 addition & 62 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,6 @@
"command": "vscode-docker.compose.down",
"when": "isWorkspaceTrusted"
},
{
"command": "vscode-docker.compose.down.subset",
"when": "isWorkspaceTrusted"
},
{
"command": "vscode-docker.compose.restart",
"when": "isWorkspaceTrusted"
Expand Down Expand Up @@ -158,11 +154,6 @@
"command": "vscode-docker.compose.down",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && editorLangId == dockercompose",
"command": "vscode-docker.compose.down.subset",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && editorLangId == dockercompose",
"command": "vscode-docker.compose.restart",
Expand All @@ -178,11 +169,6 @@
"command": "vscode-docker.compose.up.subset",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && editorLangId == dockercompose",
"command": "vscode-docker.compose.down.subset",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && editorLangId == dockerfile",
"command": "vscode-docker.images.build",
Expand All @@ -200,11 +186,6 @@
"command": "vscode-docker.compose.down",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && resourceLangId == dockercompose",
"command": "vscode-docker.compose.down.subset",
"group": "docker"
},
{
"when": "isWorkspaceTrusted && resourceLangId == dockercompose",
"command": "vscode-docker.compose.restart",
Expand Down Expand Up @@ -1837,50 +1818,13 @@
"type": "string"
}
],
"default": [
{
"label": "Compose Down",
"template": "${composeCommand} ${configurationFile} down"
}
],
"description": "%vscode-docker.config.template.composeDown.description%"
},
"docker.commands.composeDownSubset": {
"oneOf": [
{
"type": "array",
"items": {
"properties": {
"template": {
"type": "string",
"description": "%vscode-docker.config.template.composeDownSubset.template%"
},
"label": {
"type": "string",
"description": "%vscode-docker.config.template.composeDownSubset.label%"
},
"match": {
"type": "string",
"description": "%vscode-docker.config.template.composeDownSubset.match%"
}
},
"required": [
"label",
"template"
]
}
},
{
"type": "string"
}
],
"default": [
{
"label": "Compose Down",
"template": "${composeCommand} ${profileList} ${configurationFile} down"
}
],
"description": "%vscode-docker.config.template.composeDownSubset.description%"
"description": "%vscode-docker.config.template.composeDown.description%"
},
"docker.containers.groupBy": {
"type": "string",
Expand Down Expand Up @@ -2346,11 +2290,6 @@
"title": "%vscode-docker.commands.compose.down%",
"category": "%vscode-docker.commands.category.docker%"
},
{
"command": "vscode-docker.compose.down.subset",
"title": "%vscode-docker.commands.compose.down.subset%",
"category": "%vscode-docker.commands.category.docker%"
},
{
"command": "vscode-docker.compose.restart",
"title": "%vscode-docker.commands.compose.restart%",
Expand Down
2 changes: 0 additions & 2 deletions package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@
"vscode-docker.config.template.composeUpSubset.label": "The label displayed to the user.",
"vscode-docker.config.template.composeUpSubset.match": "The regular expression for choosing the right template. Checked against docker-compose YAML files, folder name, etc.",
"vscode-docker.config.template.composeUpSubset.description": "Command templates for `docker-compose up <subset>` commands.",
"vscode-docker.config.template.composeDownSubset.description": "Command templates for `docker-compose <subset> down` commands.",
"vscode-docker.config.template.composeDown.template": "The command template.",
"vscode-docker.config.template.composeDown.label": "The label displayed to the user.",
"vscode-docker.config.template.composeDown.match": "The regular expression for choosing the right template. Checked against docker-compose YAML files, folder name, etc.",
Expand Down Expand Up @@ -204,7 +203,6 @@
"vscode-docker.config.docker.enableDockerComposeLanguageService": "Whether or not to enable the preview Docker Compose Language Service. Changing requires restart to take effect.",
"vscode-docker.config.deprecated": "This setting has been deprecated and will be removed in a future release.",
"vscode-docker.commands.compose.down": "Compose Down",
"vscode-docker.commands.compose.down.subset": "Compose Down - Select Services",
"vscode-docker.commands.compose.restart": "Compose Restart",
"vscode-docker.commands.compose.up": "Compose Up",
"vscode-docker.commands.compose.up.subset": "Compose Up - Select Services",
Expand Down
8 changes: 2 additions & 6 deletions src/commands/compose/compose.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { quickPickWorkspaceFolder } from '../../utils/quickPickWorkspaceFolder';
import { selectComposeCommand } from '../selectCommandTemplate';
import { getComposeProfileList, getComposeProfilesOrServices, getComposeServiceList, getDefaultCommandComposeProfilesOrServices } from './getComposeSubsetList';

async function compose(context: IActionContext, commands: ('up' | 'down' | 'upSubset' | 'downSubset')[], message: string, dockerComposeFileUri?: vscode.Uri | string, selectedComposeFileUris?: vscode.Uri[], preselectedServices?: string[], preselectedProfiles?: string[]): Promise<void> {
async function compose(context: IActionContext, commands: ('up' | 'down' | 'upSubset')[], message: string, dockerComposeFileUri?: vscode.Uri | string, selectedComposeFileUris?: vscode.Uri[], preselectedServices?: string[], preselectedProfiles?: string[]): Promise<void> {
if (!vscode.workspace.isTrusted) {
throw new UserCancelledError('enforceTrust');
}
Expand Down Expand Up @@ -66,7 +66,7 @@ async function compose(context: IActionContext, commands: ('up' | 'down' | 'upSu
if (!terminalCommand.args?.length) {
// Add the service list if needed
terminalCommand.command = await addServicesOrProfilesIfNeeded(context, folder, terminalCommand.command, preselectedServices, preselectedProfiles);
} else if (command === 'upSubset') {
} else if (command === 'upSubset' || command === 'down') {
// If there are arguments, it means we're using a default command (based on the logic in selectCommandTemplate.ts)
// So, we only want to add profile/service list for the upSubset command
terminalCommand = await addDefaultCommandServicesOrProfilesIfNeeded(context, folder, terminalCommand, preselectedServices, preselectedProfiles);
Expand Down Expand Up @@ -97,10 +97,6 @@ export async function composeDown(context: IActionContext, dockerComposeFileUri?
return await compose(context, ['down'], vscode.l10n.t('Choose Docker Compose file to take down'), dockerComposeFileUri, selectedComposeFileUris);
}

export async function composeDownSubset(context: IActionContext, dockerComposeFileUri?: vscode.Uri, selectedComposeFileUris?: vscode.Uri[], preselectedServices?: string[], preselectedProfiles?: string[]): Promise<void> {
return await compose(context, ['downSubset'], vscode.l10n.t('Choose Docker Compose file to take down'), dockerComposeFileUri, selectedComposeFileUris, preselectedServices, preselectedProfiles);
}

export async function composeRestart(context: IActionContext, dockerComposeFileUri?: vscode.Uri, selectedComposeFileUris?: vscode.Uri[]): Promise<void> {
return await compose(context, ['down', 'up'], vscode.l10n.t('Choose Docker Compose file to restart'), dockerComposeFileUri, selectedComposeFileUris);
}
Expand Down
2 changes: 2 additions & 0 deletions src/commands/compose/getComposeSubsetList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ export async function getDefaultCommandComposeProfilesOrServices(context: IActio
useProfiles = true;
} else if (preselectedServices?.length) {
useProfiles = false;
} else if (composeCommand.args.includes('down')) {
useProfiles = true;
} else if (profiles?.length) {
const profilesOrServices: IAzureQuickPickItem<SubsetType>[] = [
{
Expand Down
3 changes: 1 addition & 2 deletions src/commands/registerCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { ext } from "../extensionVariables";
import { scaffold } from "../scaffolding/scaffold";
import { scaffoldCompose } from "../scaffolding/scaffoldCompose";
import { scaffoldDebugConfig } from "../scaffolding/scaffoldDebugConfig";
import { composeDown, composeDownSubset, composeRestart, composeUp, composeUpSubset } from "./compose/compose";
import { composeDown, composeRestart, composeUp, composeUpSubset } from "./compose/compose";
import { attachShellContainer } from "./containers/attachShellContainer";
import { browseContainer } from "./containers/browseContainer";
import { composeGroupDown, composeGroupLogs, composeGroupRestart, composeGroupStart, composeGroupStop } from "./containers/composeGroup";
Expand Down Expand Up @@ -117,7 +117,6 @@ export function registerCommands(): void {
registerWorkspaceCommand('vscode-docker.debugging.initializeForDebugging', scaffoldDebugConfig);

registerWorkspaceCommand('vscode-docker.compose.down', composeDown);
registerWorkspaceCommand('vscode-docker.compose.down.subset', composeDownSubset);
registerWorkspaceCommand('vscode-docker.compose.restart', composeRestart);
registerWorkspaceCommand('vscode-docker.compose.up', composeUp);
registerWorkspaceCommand('vscode-docker.compose.up.subset', composeUpSubset);
Expand Down
7 changes: 2 additions & 5 deletions src/commands/selectCommandTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { ext } from '../extensionVariables';
import { isDockerComposeClient } from '../runtimes/OrchestratorRuntimeManager';
import { resolveVariables } from '../utils/resolveVariables';

type TemplateCommand = 'build' | 'run' | 'runInteractive' | 'attach' | 'logs' | 'composeUp' | 'composeDown' | 'composeUpSubset' | 'composeDownSubset';
type TemplateCommand = 'build' | 'run' | 'runInteractive' | 'attach' | 'logs' | 'composeUp' | 'composeDown' | 'composeUpSubset';

type TemplatePicker = (items: IAzureQuickPickItem<CommandTemplate>[], options: IAzureQuickPickOptions) => Promise<IAzureQuickPickItem<CommandTemplate>>;

Expand Down Expand Up @@ -76,7 +76,7 @@ export async function selectLogsCommand(context: IActionContext, containerName:
);
}

export async function selectComposeCommand(context: IActionContext, folder: vscode.WorkspaceFolder, composeCommand: 'up' | 'down' | 'upSubset' | 'downSubset', configurationFile?: string, detached?: boolean, build?: boolean): Promise<VoidCommandResponse> {
export async function selectComposeCommand(context: IActionContext, folder: vscode.WorkspaceFolder, composeCommand: 'up' | 'down' | 'upSubset', configurationFile?: string, detached?: boolean, build?: boolean): Promise<VoidCommandResponse> {
let template: TemplateCommand;

switch (composeCommand) {
Expand All @@ -86,9 +86,6 @@ export async function selectComposeCommand(context: IActionContext, folder: vsco
case 'down':
template = 'composeDown';
break;
case 'downSubset':
template = 'composeDownSubset';
break;
case 'upSubset':
default:
template = 'composeUpSubset';
Expand Down

0 comments on commit 931659c

Please sign in to comment.