-
Notifications
You must be signed in to change notification settings - Fork 2
/
build.js
46 lines (40 loc) · 1.48 KB
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict';
const d3_json = require('d3-request').json;
const shell = require('shelljs');
const colors = require('colors/safe');
const writeFile = require('fs').writeFile;
const wd = process.cwd();
function getIDPresets(done) {
d3_json('https://raw.githubusercontent.com/openstreetmap/iD/master/data/presets/presets.json', (err, res) => {
if (err) {
console.log(colors.bgRed('\nFAILED TO REQUEST ICONS!!!\n'));
console.log(colors.bgRed('\nUSING EMPTY OBJECT INSTEAD!!!\n'));
done({});
} else {
done(Object.values(res.presets).reduce((icons, preset) => {
icons[Object.entries(preset.tags).sort().map(tag => tag.join('=')).join(':')] = preset.icon;
return icons;
}, {}));
}
});
}
function build() {
// make config files...
shell.exec('cp process.yml.in process.yml');
console.log(colors.rainbow('\nCONFIGS BUILT!\n\n'));
// build docs
shell.exec('npm run makedocs');
console.log(colors.rainbow('\nDOCS BUILT!!\n\n'));
getIDPresets((icons) => {
const presetsLocation = wd + '/adapters/iDPresets/icons.json';
writeFile(presetsLocation, JSON.stringify(icons), (err) => {
if (err) {
console.log(colors.bgRed('\nFAILED TO WRITE ICONS!!!\n'));
console.log(err);
process.exit(1);
}
console.log(colors.rainbow('\nICONS MAP BUILT!!\n\n'));
});
});
};
build();