adgile
Version:
An easy-to-use automated front-end setup.
55 lines (47 loc) • 1.44 kB
JavaScript
/**
* A module for running the `adg inline` task
* @module task.inline
*/
const chalk = require('chalk'),
gulp = require('gulp'),
fs = require('fs-extra'),
inlineCSS = require('gulp-inline-css'),
globule = require('globule');
/**
* Inlines all files in the current folder, unless a specific filename is specified.
* @param {*} callback
*/
function runTask(cb) {
let singleFile = false;
let files;
let numFiles;
if (!process.argv[3]) {
if (!globule.find('./*.html').length) {
console.log(chalk.red('No HTML files found. Are you in the right directory?'));
cb(null);
process.exit(0);
}
numFiles = globule.find('./*.html').length;
files = ['./*.html'];
} else {
files = process.argv[3];
singleFile = true;
numFiles = 1;
}
if( singleFile && !fs.pathExists(files)) {
console.log(chalk.red('File not found. Please provide an existing HTML file name.'));
cb(null);
process.exit(0);
}
return gulp.src(files, { read: true })
.pipe(inlineCSS({
preserveMediaQueries: true
}))
.pipe(gulp.dest('./_export'))
.on('finish', () => { console.log(chalk.green('✓ CSS inline complete. ' + numFiles + ' files exported.')); });
cb(null);
}
module.exports = {
runTask
}