This repository has been archived by the owner on Jan 9, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathupdate.js
71 lines (66 loc) · 2.01 KB
/
update.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const { parse } = require('yaml').default;
const { readFileSync, writeFileSync } = require('fs');
const { mapSeries } = require('bluebird');
const rp = require('request-promise');
function fetch(item) {
return rp.post(process.env.UPDATE_URL, {
json: {
params: {
buildtime: '',
device: [ item.device, ...item.tags.split(' ') ].join('_'),
deviceid: '',
flag: '0',
version: '',
}
}
})
.then(({ result }) => {
if (!result) return null;
const update = result[0];
console.log(`- ${item.device}: ${update.filename}`);
return {
device: item.device,
update: update,
};
});
}
const devices = parse(readFileSync('_data/devices.yml', 'utf8'));
mapSeries(devices, (item) => fetch(item))
.then(links => {
let latest = '';
let updated = 0;
for (const item of links) {
if (item) {
latest += `${item.device}:\n`;
latest += ` filename: ${item.update.filename}\n`;
latest += ` md5sum: ${item.update.md5sum}\n`;
latest += ` timestamp: ${item.update.timestamp}\n`;
latest += ` url: ${item.update.url}\n`;
if (item.update.timestamp > updated) {
updated = item.update.timestamp;
}
}
}
writeFileSync('_data/links.yml', latest);
writeFileSync('_data/last_updated.yml', `timestamp: ${updated}\n`);
});
const exp_devices = parse(readFileSync('_data/exp/devices.yml', 'utf8'));
mapSeries(exp_devices, (item) => fetch(item))
.then(links => {
let latest = '';
let updated = 0;
for (const item of links) {
if (item) {
latest += `${item.device}:\n`;
latest += ` filename: ${item.update.filename}\n`;
latest += ` md5sum: ${item.update.md5sum}\n`;
latest += ` timestamp: ${item.update.timestamp}\n`;
latest += ` url: ${item.update.url}\n`;
if (item.update.timestamp > updated) {
updated = item.update.timestamp;
}
}
}
writeFileSync('_data/exp/links.yml', latest);
writeFileSync('_data/exp/last_updated.yml', `timestamp: ${updated}\n`);
});