feat(core): pass down help to run-commands (#21331)

This commit is contained in:
Emily Xiong 2024-01-26 21:39:55 -05:00 committed by GitHub
parent 79a7e79eb2
commit 73d37cc58c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -16,6 +16,7 @@ import {
} from '../../project-graph/project-graph'; } from '../../project-graph/project-graph';
import { ProjectGraph } from '../../config/project-graph'; import { ProjectGraph } from '../../config/project-graph';
import { readNxJson } from '../../config/configuration'; import { readNxJson } from '../../config/configuration';
import { runCommand } from '../../native';
import { import {
getLastValueFromAsyncIterableIterator, getLastValueFromAsyncIterableIterator,
isAsyncIterator, isAsyncIterator,
@ -80,10 +81,9 @@ async function iteratorToProcessStatusCode(
} }
async function parseExecutorAndTarget( async function parseExecutorAndTarget(
{ project, target, configuration }: Target, { project, target }: Target,
root: string, root: string,
projectsConfigurations: ProjectsConfigurations, projectsConfigurations: ProjectsConfigurations
nxJsonConfiguration: NxJsonConfiguration
) { ) {
const proj = projectsConfigurations.projects[project]; const proj = projectsConfigurations.projects[project];
const targetConfig = proj.targets?.[target]; const targetConfig = proj.targets?.[target];
@ -104,24 +104,38 @@ async function parseExecutorAndTarget(
} }
async function printTargetRunHelpInternal( async function printTargetRunHelpInternal(
{ project, target, configuration }: Target, { project, target }: Target,
root: string, root: string,
projectsConfigurations: ProjectsConfigurations, projectsConfigurations: ProjectsConfigurations
nxJsonConfiguration: NxJsonConfiguration
) { ) {
const { executor, nodeModule, schema } = await parseExecutorAndTarget( const { executor, nodeModule, schema, targetConfig } =
{ project, target, configuration }, await parseExecutorAndTarget(
{ project, target },
root, root,
projectsConfigurations, projectsConfigurations
nxJsonConfiguration
); );
printRunHelp({ project, target }, schema, { printRunHelp({ project, target }, schema, {
plugin: nodeModule, plugin: nodeModule,
entity: executor, entity: executor,
}); });
if (
nodeModule === 'nx' &&
executor === 'run-commands' &&
targetConfig.options.command
) {
const command = targetConfig.options.command.split(' ')[0];
await new Promise(() => {
const cp = runCommand(`${command} --help`);
cp.onExit((code) => {
process.exit(code);
});
});
} else {
process.exit(0); process.exit(0);
} }
}
async function runExecutorInternal<T extends { success: boolean }>( async function runExecutorInternal<T extends { success: boolean }>(
{ project, target, configuration }: Target, { project, target, configuration }: Target,
@ -140,8 +154,7 @@ async function runExecutorInternal<T extends { success: boolean }>(
await parseExecutorAndTarget( await parseExecutorAndTarget(
{ project, target, configuration }, { project, target, configuration },
root, root,
projectsConfigurations, projectsConfigurations
nxJsonConfiguration
); );
configuration ??= targetConfig.defaultConfiguration; configuration ??= targetConfig.defaultConfiguration;
@ -258,13 +271,11 @@ export function printTargetRunHelp(targetDescription: Target, root: string) {
return handleErrors(false, async () => { return handleErrors(false, async () => {
const projectsConfigurations = const projectsConfigurations =
readProjectsConfigurationFromProjectGraph(projectGraph); readProjectsConfigurationFromProjectGraph(projectGraph);
const nxJsonConfiguration = readNxJson();
printTargetRunHelpInternal( await printTargetRunHelpInternal(
targetDescription, targetDescription,
root, root,
projectsConfigurations, projectsConfigurations
nxJsonConfiguration
); );
}); });
} }