diff --git a/build.js b/build.js index 8ec24bf24..d50523bc5 100644 --- a/build.js +++ b/build.js @@ -30,12 +30,14 @@ unlink('dist/locales/en.json'); var categories = generateCategories(); var fields = generateFields(); var presets = generatePresets(); +var defaults = read('data/presets/defaults.json'); var translations = generateTranslations(fields, presets); var taginfo = generateTaginfo(presets); // Additional consistency checks validateCategoryPresets(categories, presets); validatePresetFields(presets, fields); +validateDefaults(defaults, categories, presets); // Save individual data files fs.writeFileSync('data/presets/categories.json', JSON.stringify({ categories: categories }, null, 4)); @@ -299,6 +301,17 @@ function validatePresetFields(presets, fields) { }); } +function validateDefaults (defaults, categories, presets) { + _.forEach(defaults.defaults, function (members, name) { + members.forEach(function (id) { + if (!presets[id] && !categories[id]) { + console.error('Unknown category or preset: ' + id + ' in default ' + name); + process.exit(1); + } + }); + }); +} + function translationsToYAML(translations) { // comment keys end with '#' and should sort immediately before their related key. function commentFirst(a, b) {