50 lines
2.1 KiB
JavaScript
50 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const fs = require("fs");
|
|
const gulp = require("gulp");
|
|
const gulpUtil = require("gulp-util");
|
|
const mustache = require("mustache");
|
|
const path = require("path");
|
|
const log_1 = require("./../consts/log");
|
|
const files_1 = require("./../../src/consts/files");
|
|
const paths_1 = require("./../../src/consts/paths");
|
|
const fs_1 = require("./../../src/helpers/fs");
|
|
const commons = fs_1.getDefaultValues();
|
|
const themeTemplateFileContent = fs.readFileSync(path.join(paths_1.default.SRC, '/themes/theme-template-color-theme.json'), files_1.CHARSET);
|
|
const themeVariants = [];
|
|
const fileNames = fs.readdirSync(path.join(paths_1.default.SRC, './themes/settings/specific'));
|
|
// build theme variants for later use in templating
|
|
fileNames.forEach(fileName => {
|
|
const filePath = path.join(paths_1.default.SRC, './themes/settings/specific', `./${fileName}`);
|
|
const contents = fs.readFileSync(filePath, files_1.CHARSET);
|
|
try {
|
|
themeVariants.push(JSON.parse(contents));
|
|
}
|
|
catch (error) {
|
|
gulpUtil.log(log_1.MESSAGE_THEME_VARIANT_PARSE_ERROR, error);
|
|
}
|
|
});
|
|
/**
|
|
* Themes task
|
|
* Builds Themes
|
|
*/
|
|
exports.default = gulp.task('build:themes', cb => {
|
|
gulpUtil.log(gulpUtil.colors.gray(log_1.HR));
|
|
fs_1.ensureDir(path.join(paths_1.default.THEMES));
|
|
try {
|
|
themeVariants.forEach(variant => {
|
|
const filePath = path.join(paths_1.default.THEMES, `./${variant.name}.json`);
|
|
const templateData = { commons, variant };
|
|
const templateJSON = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
|
const templateJSONStringified = JSON.stringify(templateJSON, null, 2);
|
|
fs.writeFileSync(filePath, templateJSONStringified, { encoding: files_1.CHARSET });
|
|
gulpUtil.log(log_1.MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
|
|
});
|
|
}
|
|
catch (exception) {
|
|
gulpUtil.log(exception);
|
|
cb(exception);
|
|
}
|
|
gulpUtil.log(gulpUtil.colors.gray(log_1.HR));
|
|
});
|
|
//# sourceMappingURL=themes.js.map
|