Skip to content

Commit 9438659

Browse files
feat: flag groups for deploy/retrieve (#626)
* feat: flag groups for deploy/retrieve * docs: apply suggestions from code review Co-authored-by: Juliet Shackell <[email protected]> --------- Co-authored-by: Juliet Shackell <[email protected]>
1 parent fcfd4a8 commit 9438659

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

src/commands/project/deploy/start.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ Messages.importMessagesDirectory(__dirname);
2525
const messages = Messages.loadMessages('@salesforce/plugin-deploy-retrieve', 'deploy.metadata');
2626

2727
const exclusiveFlags = ['manifest', 'source-dir', 'metadata', 'metadata-dir'];
28+
const mdapiFormatFlags = 'Metadata API Format';
29+
const sourceFormatFlags = 'Source Format';
30+
const testFlags = 'Test';
31+
const destructiveFlags = 'Delete';
2832

2933
export default class DeployMetadata extends SfCommand<DeployResultJson> {
3034
public static readonly description = messages.getMessage('description');
@@ -76,40 +80,46 @@ export default class DeployMetadata extends SfCommand<DeployResultJson> {
7680
summary: messages.getMessage('flags.manifest.summary'),
7781
exclusive: exclusiveFlags.filter((f) => f !== 'manifest'),
7882
exists: true,
83+
helpGroup: sourceFormatFlags,
7984
}),
8085
metadata: Flags.string({
8186
char: 'm',
8287
summary: messages.getMessage('flags.metadata.summary'),
8388
multiple: true,
8489
exclusive: exclusiveFlags.filter((f) => f !== 'metadata'),
90+
helpGroup: sourceFormatFlags,
8591
}),
8692
'metadata-dir': fileOrDirFlag({
8793
summary: messages.getMessage('flags.metadata-dir.summary'),
8894
exclusive: exclusiveFlags.filter((f) => f !== 'metadata-dir'),
8995
exists: true,
96+
helpGroup: mdapiFormatFlags,
9097
}),
9198
'single-package': Flags.boolean({
9299
summary: messages.getMessage('flags.single-package.summary'),
93100
dependsOn: ['metadata-dir'],
101+
helpGroup: mdapiFormatFlags,
94102
}),
95103
'source-dir': Flags.string({
96104
char: 'd',
97105
description: messages.getMessage('flags.source-dir.description'),
98106
summary: messages.getMessage('flags.source-dir.summary'),
99107
multiple: true,
100108
exclusive: exclusiveFlags.filter((f) => f !== 'source-dir'),
109+
helpGroup: sourceFormatFlags,
101110
}),
102111
'target-org': Flags.requiredOrg({
103112
char: 'o',
104113
description: messages.getMessage('flags.target-org.description'),
105114
summary: messages.getMessage('flags.target-org.summary'),
106115
required: true,
107116
}),
108-
tests: testsFlag,
117+
tests: { ...testsFlag, helpGroup: testFlags },
109118
'test-level': testLevelFlag({
110119
description: messages.getMessage('flags.test-level.description'),
111120
summary: messages.getMessage('flags.test-level.summary'),
112121
options: [TestLevel.NoTestRun, TestLevel.RunSpecifiedTests, TestLevel.RunLocalTests, TestLevel.RunAllTestsInOrg],
122+
helpGroup: testFlags,
113123
}),
114124
verbose: Flags.boolean({
115125
summary: messages.getMessage('flags.verbose.summary'),
@@ -129,20 +139,28 @@ export default class DeployMetadata extends SfCommand<DeployResultJson> {
129139
summary: messages.getMessage('flags.purge-on-delete.summary'),
130140
dependsOn: ['manifest'],
131141
relationships: [{ type: 'some', flags: ['pre-destructive-changes', 'post-destructive-changes'] }],
142+
helpGroup: destructiveFlags,
132143
}),
133144
'pre-destructive-changes': Flags.file({
134145
summary: messages.getMessage('flags.pre-destructive-changes.summary'),
135146
dependsOn: ['manifest'],
147+
helpGroup: destructiveFlags,
136148
}),
137149
'post-destructive-changes': Flags.file({
138150
summary: messages.getMessage('flags.post-destructive-changes.summary'),
139151
dependsOn: ['manifest'],
152+
helpGroup: destructiveFlags,
153+
}),
154+
'coverage-formatters': { ...coverageFormattersFlag, helpGroup: testFlags },
155+
junit: Flags.boolean({
156+
summary: messages.getMessage('flags.junit.summary'),
157+
dependsOn: ['coverage-formatters'],
158+
helpGroup: testFlags,
140159
}),
141-
'coverage-formatters': coverageFormattersFlag,
142-
junit: Flags.boolean({ summary: messages.getMessage('flags.junit.summary'), dependsOn: ['coverage-formatters'] }),
143160
'results-dir': Flags.directory({
144161
dependsOn: ['coverage-formatters'],
145162
summary: messages.getMessage('flags.results-dir.summary'),
163+
helpGroup: testFlags,
146164
}),
147165
};
148166

src/commands/project/retrieve/start.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ const messages = Messages.loadMessages('@salesforce/plugin-deploy-retrieve', 're
3535
const mdTransferMessages = Messages.loadMessages('@salesforce/plugin-deploy-retrieve', 'metadata.transfer');
3636

3737
type Format = 'source' | 'metadata';
38+
const mdapiFlagGroup = 'Metadata API Format';
39+
3840
export default class RetrieveMetadata extends SfCommand<RetrieveResultJson> {
3941
public static readonly summary = messages.getMessage('summary');
4042
public static readonly description = messages.getMessage('description');
@@ -76,6 +78,7 @@ export default class RetrieveMetadata extends SfCommand<RetrieveResultJson> {
7678
summary: messages.getMessage('flags.single-package.summary'),
7779
dependsOn: ['target-metadata-dir'],
7880
exclusive: ['ignore-conflicts'],
81+
helpGroup: mdapiFlagGroup,
7982
}),
8083
'source-dir': Flags.string({
8184
char: 'd',
@@ -94,6 +97,7 @@ export default class RetrieveMetadata extends SfCommand<RetrieveResultJson> {
9497
},
9598
],
9699
exclusive: ['ignore-conflicts'],
100+
helpGroup: mdapiFlagGroup,
97101
}),
98102
'target-org': Flags.requiredOrg({
99103
char: 'o',
@@ -114,11 +118,13 @@ export default class RetrieveMetadata extends SfCommand<RetrieveResultJson> {
114118
summary: messages.getMessage('flags.unzip.summary'),
115119
dependsOn: ['target-metadata-dir'],
116120
exclusive: ['ignore-conflicts'],
121+
helpGroup: mdapiFlagGroup,
117122
}),
118123
'zip-file-name': zipFileFlag({
119124
summary: messages.getMessage('flags.zip-file-name.summary'),
120125
dependsOn: ['target-metadata-dir'],
121126
exclusive: ['ignore-conflicts'],
127+
helpGroup: mdapiFlagGroup,
122128
}),
123129
};
124130

0 commit comments

Comments
 (0)