aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/monorepo-scripts/src/publish_release_notes.ts20
-rw-r--r--packages/monorepo-scripts/src/utils/utils.ts7
2 files changed, 23 insertions, 4 deletions
diff --git a/packages/monorepo-scripts/src/publish_release_notes.ts b/packages/monorepo-scripts/src/publish_release_notes.ts
index a9bc8fe75..101ac87b4 100644
--- a/packages/monorepo-scripts/src/publish_release_notes.ts
+++ b/packages/monorepo-scripts/src/publish_release_notes.ts
@@ -1,3 +1,4 @@
+import * as _ from 'lodash';
import * as yargs from 'yargs';
import { publishReleaseNotesAsync } from './utils/github_release_utils';
@@ -9,14 +10,25 @@ const args = yargs
type: 'boolean',
demandOption: true,
})
- .example('$0 --isDryRun true', 'Full usage example').argv;
+ .option('packages', {
+ describe:
+ 'Space-separated list of packages to generated release notes for. If not supplied, it does all `Lerna updated` packages',
+ type: 'string',
+ })
+ .example('$0 --isDryRun true --packages "0x.js @0xproject/web3-wrapper"', 'Full usage example').argv;
(async () => {
const isDryRun = args.isDryRun;
- const shouldIncludePrivate = false;
- const allUpdatedPackages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
+ let packages;
+ if (_.isUndefined(args.packages)) {
+ const shouldIncludePrivate = false;
+ packages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
+ } else {
+ const packageNames = args.packages.split(' ');
+ packages = await utils.getPackagesByNameAsync(packageNames);
+ }
- await publishReleaseNotesAsync(allUpdatedPackages, isDryRun);
+ await publishReleaseNotesAsync(packages, isDryRun);
process.exit(0);
})().catch(err => {
utils.log(err);
diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts
index 2ce36942c..5e2e877c7 100644
--- a/packages/monorepo-scripts/src/utils/utils.ts
+++ b/packages/monorepo-scripts/src/utils/utils.ts
@@ -54,6 +54,13 @@ export const utils = {
}
return packages;
},
+ async getPackagesByNameAsync(packageNames: string[]): Promise<Package[]> {
+ const allPackages = utils.getPackages(constants.monorepoRootPath);
+ const updatedPackages = _.filter(allPackages, pkg => {
+ return _.includes(packageNames, pkg.packageJson.name);
+ });
+ return updatedPackages;
+ },
async getUpdatedPackagesAsync(shouldIncludePrivate: boolean): Promise<Package[]> {
const updatedPublicPackages = await utils.getLernaUpdatedPackagesAsync(shouldIncludePrivate);
const updatedPackageNames = _.map(updatedPublicPackages, pkg => pkg.name);