forked from open-genes/open-genes-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetversion.js
42 lines (36 loc) · 1.21 KB
/
setversion.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
/* eslint-env es6 */
const fs = require('fs');
const version = require('./package.json').version;
const buildNumber = fs.readFileSync('.env', 'utf8');
const build = buildNumber.replace(/(\r\n|\n|\r)/gm, '').replace(/,/gm);
const targetFiles = [
'src/environments/environment.ts',
'src/environments/environment.develop.ts',
'src/environments/environment.demo.ts',
'src/environments/environment.prod.ts'
];
const replacements = new Map([
['{{VERSION}}', version],
['{{BUILD_NUMBER}}', build],
]);
function searchReplaceFile(comment, replacementsMap, fileName) {
const targetFile = fs.createReadStream(fileName, 'utf8');
let updatedContent = '';
targetFile.on('data', function(chunk) {
updatedContent = chunk.toString().replace(/{{[^}]+}}/g, function(m) {
return replacementsMap.get(m) || m;
});
});
targetFile.on('end', function() {
fs.writeFile(fileName, updatedContent, function(err) {
if (err) {
return console.log(`Trouble with replacing ${comment} in ${fileName}\n`, err);
} else {
console.log(`Successfully replaced ${comment} in ${fileName}`);
}
});
});
}
for (const file of targetFiles) {
searchReplaceFile('build number', replacements, file);
}