remote-jobs/bin/validate.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
const { parseFromDirectory } = require( '../lib' );
const fs = require( 'fs' );
const path = require( 'path' );
// Accept an optional directory name where the content files live.
const contentPath = (
process.argv[ 2 ]
? path.resolve( process.argv[ 2 ] )
: path.join( __dirname, '..' )
);
// Parse the content from the directory.
const result = parseFromDirectory( contentPath );
// Report any errors.
const errorCount = result.errors ? result.errors.length : 0;
( result.errors || [] ).forEach( err => {
err.message.split( '\n' ).forEach( line => {
console.log( '%s: %s', err.filename, line );
} );
} );
// Count all profile headings, if requested.
if ( process.env.REPORT_PROFILE_HEADINGS ) {
console.log();
console.log(
'Profile headings by count (%d total profiles):',
result.profileFilenames.length
);
Object.keys( result.profileHeadingCounts ).forEach( heading => {
console.log(
'%s: %d',
heading,
result.profileHeadingCounts[ heading ]
);
} );
}
console.log();
console.log(
'%d problem%s detected',
errorCount,
( errorCount === 1 ? '' : 's' )
);
process.exitCode = Math.min( errorCount, 99 );