60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var config = require("../config");
|
||
|
var logger = require("../logger").logger;
|
||
|
|
||
|
var fs = require("fs");
|
||
|
var _ = require("../../lodash.custom");
|
||
|
var path = require("path");
|
||
|
|
||
|
var info = {
|
||
|
/**
|
||
|
* Version info
|
||
|
* @param {Object} pjson
|
||
|
* @returns {String}
|
||
|
*/
|
||
|
getVersion: function (pjson) {
|
||
|
console.log(pjson.version);
|
||
|
return pjson.version;
|
||
|
},
|
||
|
/**
|
||
|
* Retrieve the config file
|
||
|
* @returns {*}
|
||
|
* @private
|
||
|
* @param filePath
|
||
|
*/
|
||
|
getConfigFile: function (filePath) {
|
||
|
return require(path.resolve(filePath));
|
||
|
},
|
||
|
/**
|
||
|
* Generate an example Config file.
|
||
|
*/
|
||
|
makeConfig: function (cwd, cb) {
|
||
|
|
||
|
var opts = require(path.join(__dirname, "..", config.configFile));
|
||
|
var userOpts = {};
|
||
|
|
||
|
var ignore = ["excludedFileTypes", "injectFileTypes", "snippetOptions"];
|
||
|
|
||
|
Object.keys(opts).forEach(function (key) {
|
||
|
if (!_.includes(ignore, key)) {
|
||
|
userOpts[key] = opts[key];
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var file = fs.readFileSync(path.join(__dirname, config.template), "utf8");
|
||
|
file = file.replace("//OPTS", JSON.stringify(userOpts, null, 4));
|
||
|
|
||
|
fs.writeFile(path.resolve(cwd, config.userFile), file, function () {
|
||
|
logger.info("Config file created {magenta:%s}", config.userFile);
|
||
|
logger.info(
|
||
|
"To use it, in the same directory run: " +
|
||
|
"{cyan:browser-sync start --config bs-config.js}"
|
||
|
);
|
||
|
cb();
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = info;
|