lila
Version:
An automatic building tool of web frontend, for teamwork.
49 lines (38 loc) • 1.43 kB
JavaScript
const fs = require('fs');
const fse = require('fs-extra');
const moment = require('moment');
const rd = require('rd');
const logger = require('../../../util/logger');
const projectConfig = require('../../../project_config');
const pathUtil = require('../../../util/path');
const current = require('../current');
/**
* Backup html or file converted from html with time suffix.
*
* @example
*
* ```
* dist/html/test/index.html -> dist/html/test/index-2016-07-01-12-12-12.html
* ```
*
* @param cb
*/
module.exports = function backupHtml(cb) {
logger.log('Backing up html files.', { prefix: !0, preLn: !0, postLn: !0 });
if (current.config.backupHtml && fs.existsSync(projectConfig.buildPaths.dist.html)) {
const suffix = moment().format('YYYY-MM-DD-HH-mm-ss');
rd.eachFileFilterSync(projectConfig.buildPaths.dist.html, file => {
// Source file path.
const sourcePath = pathUtil.replaceBackSlash(file);
const lastSlashIndex = sourcePath.lastIndexOf('/');
const dir = sourcePath.slice(0, lastSlashIndex);
const fileName = sourcePath.slice(lastSlashIndex + 1);
const lastDotIndex = fileName.lastIndexOf('.');
const baseFileName = fileName.slice(0, lastDotIndex);
const extName = fileName.slice(lastDotIndex + 1);
const targetPath = `${dir}/${baseFileName}-${suffix}.${extName}`;
fse.copySync(sourcePath, targetPath);
});
}
cb();
};