uswds
Version:
Open source UI components and visual style guide for U.S. government websites
74 lines (47 loc) • 1.53 kB
JavaScript
var gulp = require('gulp');
var dutil = require('./doc-util');
var spawn = require('cross-spawn');
var runSequence = require('run-sequence');
var del = require('del');
var task = 'release';
gulp.task('make-tmp-directory', function (done) {
dutil.logMessage('make-tmp-directory', 'Creating temporary release directory.');
return gulp.src('dist/**/*')
.pipe(gulp.dest(dutil.dirName));
});
gulp.task('clean-tmp-directory', function (done) {
dutil.logMessage('clean-tmp-directory', 'Deleting temporary release directory.');
return del(dutil.dirName);
});
gulp.task('zip-archives', function (done) {
dutil.logMessage('zip-archives', 'Creating a zip archive in dist/' + dutil.dirName + '.zip');
var zip = spawn('zip', [
'--log-info',
'-r',
'./dist/' + dutil.dirName + '.zip',
dutil.dirName,
'-x "*.DS_Store"',
]);
zip.stdout.on('data', function (data) {
if (/[\w\d]+/.test(data)) {
dutil.logData('zip-archives', data);
}
});
zip.stderr.on('data', function (data) {
dutil.logError('zip-archives', data);
});
zip.on('error', function (error) {
dutil.logError('zip-archives', 'Failed to create a zip archive');
done(error);
});
zip.on('close', function (code) { if (0 === code) { done(); } });
});
gulp.task(task, [ 'build' ], function (done) {
dutil.logMessage(task, 'Creating a zip archive at dist/' + dutil.dirName + '.zip');
runSequence(
'make-tmp-directory',
'zip-archives',
'clean-tmp-directory',
done
);
});