joyent-portal/scripts/license-to-fail
Sérgio Ramos 9b3874ea56 chore: format, lint, and test scripts based on staged files
For lint and test, it detects the packages that the staged files affect and only
runs the corresponding `lint` and `test` scripts.

For format, it will run prettier through the Added/Modified js files.
2017-05-26 10:20:00 +01:00

35 lines
834 B
JavaScript
Executable File

#!/usr/bin/env node
const forEach = require('apr-for-each');
const execa = require('execa');
const globby = require('globby');
const main = require('apr-main');
const argv = require('yargs').argv;
const path = require('path');
const config = path.join(__dirname, '../.licensesrc.json');
const CWD = path.join(__dirname, '..');
const BIN = path.join(CWD, 'node_modules/.bin/license-to-fail');
const run = async (dirs = []) =>
forEach(dirs, async dir => {
const cp = execa(BIN, [config], {
cwd: dir
});
cp.stdout.pipe(process.stdout);
cp.stderr.pipe(process.stderr);
return cp;
});
const all = async () => {
const files = await globby(['packages/*/', '.'], {
cwd: CWD
});
return run(files.filter(pathname => !/node_modules/.test(pathname)));
};
main(argv._.length ? run(argv._) : all());