-
Notifications
You must be signed in to change notification settings - Fork 960
Expand file tree
/
Copy pathchange_version.js
More file actions
57 lines (48 loc) · 1.55 KB
/
Copy pathchange_version.js
File metadata and controls
57 lines (48 loc) · 1.55 KB
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
// @ts-check
const fs = require('fs');
const version = process.argv[2] || 'same';
const changelog = process.argv[3] || 'same';
const langVersion = process.argv[4] || 'same';
const PREFIX = 'VITE_';
const BUILD_KEY = PREFIX + 'BUILD';
const VERSION_KEY = PREFIX + 'VERSION';
const VERSION_FULL_KEY = PREFIX + 'VERSION_FULL';
const LANG_PACK_VERSION_KEY = PREFIX + 'LANG_PACK_VERSION';
console.log('Change version to:', {version, changelog, langVersion});
const envStr = fs.readFileSync('./.env').toString();
const env = {};
envStr.split('\n').forEach(line => {
if(!line) return;
const [key, value] = line.split('=', 2);
env[key] = value;
});
if(version !== 'same') {
env[VERSION_KEY] = version;
}
env[BUILD_KEY] = +env[BUILD_KEY] + 1;
env[VERSION_FULL_KEY] = `${env[VERSION_KEY]} (${env[BUILD_KEY]})`;
if(langVersion !== 'same') {
env[LANG_PACK_VERSION_KEY] = langVersion;
}
const lines = [];
for(const key in env) {
lines.push(`${key}=${env[key]}`);
}
fs.writeFileSync('./.env', lines.join('\n') + '\n', 'utf-8');
fs.writeFileSync('./public/version', env[VERSION_FULL_KEY], 'utf-8');
if(changelog !== 'same') {
const data = fs.readFileSync('./CHANGELOG.md');
const fd = fs.openSync('./CHANGELOG.md', 'w+');
const lines = [
`### ${env[VERSION_FULL_KEY]}`
];
changelog.trim().split('\n').forEach(line => {
lines.push(`* ${line}`);
});
const insert = Buffer.from(lines.join('\n') + '\n\n');
fs.writeSync(fd, insert, 0, insert.length, 0);
fs.writeSync(fd, data, 0, data.length, insert.length);
fs.close(fd, () => {
process.exit(0);
});
}