From eda5a131777aee8d17d7a1a9786f95d78847a425 Mon Sep 17 00:00:00 2001 From: Victor Savkin Date: Mon, 11 Jun 2018 11:42:48 -0400 Subject: [PATCH] feat(schematics): add an option to run affected:* by only specifying --base --- packages/schematics/src/command-line/nx.ts | 12 ++++++++---- packages/schematics/src/command-line/shared.ts | 11 +++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/schematics/src/command-line/nx.ts b/packages/schematics/src/command-line/nx.ts index d3e5734889..e8cd83d6d0 100644 --- a/packages/schematics/src/command-line/nx.ts +++ b/packages/schematics/src/command-line/nx.ts @@ -117,11 +117,16 @@ function withAffectedOptions(yargs: yargs.Argv): yargs.Argv { type: 'string', requiresArg: true }) - .group(['base', 'head'], 'Run command using --base=[SHA1] --head=[SHA2]:') + .group( + ['base'], + 'Run command using --base=[SHA1] (affected by the committed, uncommitted and untracked changes):' + ) + .group( + ['base', 'head'], + 'or using --base=[SHA1] --head=[SHA2] (affected by the committed changes):' + ) .group(['files', 'uncommitted', 'untracked'], 'or using:') - .implies('SHA1', 'SHA2') .implies('head', 'base') - .implies('base', 'head') .nargs('uncommitted', 0) .nargs('untracked', 0) .nargs('all', 0) @@ -132,7 +137,6 @@ function withAffectedOptions(yargs: yargs.Argv): yargs.Argv { default: [] }) .conflicts({ - SHA1: ['files', 'untracked', 'uncommitted', 'base', 'head', 'all'], files: ['uncommitted', 'untracked', 'base', 'head', 'all'], untracked: ['uncommitted', 'files', 'base', 'head', 'all'], uncommitted: ['files', 'untracked', 'base', 'head', 'all'], diff --git a/packages/schematics/src/command-line/shared.ts b/packages/schematics/src/command-line/shared.ts index 4a1e051025..5b7ebc237f 100644 --- a/packages/schematics/src/command-line/shared.ts +++ b/packages/schematics/src/command-line/shared.ts @@ -65,6 +65,17 @@ export function parseFiles( files: getFilesUsingBaseAndHead(base, head), rest: [...unnamed, ...named] }; + } else if (base) { + return { + files: Array.from( + new Set([ + ...getFilesUsingBaseAndHead(base, 'HEAD'), + ...getUncommittedFiles(), + ...getUntrackedFiles() + ]) + ), + rest: [...unnamed, ...named] + }; } else if (unnamed.length >= 2) { return { files: getFilesFromShash(unnamed[0], unnamed[1]),