Merge pull request #1092 from 0xProject/addFlagToPublishReleases

Add Flag to publish releases command-line tool
This commit is contained in:
Fabio Berger 2018-09-26 13:50:08 +01:00 committed by GitHub
commit 13aa98f0f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 4 deletions

View File

@ -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;
let packages;
if (_.isUndefined(args.packages)) {
const shouldIncludePrivate = false;
const allUpdatedPackages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
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);

View File

@ -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);