-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathupdate-version.js
More file actions
69 lines (59 loc) · 1.89 KB
/
update-version.js
File metadata and controls
69 lines (59 loc) · 1.89 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
58
59
60
61
62
63
64
65
66
67
68
var fs = require('fs');
var child_process = require('child_process');
var args = process.argv.slice(2);
const replace = require('replace-in-file');
function pretvori(match, bumpVersion) {
let verzija = match.match(/version *: *\'([^\']*)\'/)[1]
let mtc = verzija.match(/(\d+)\.(\d+)\.(\d+)( *\- *([^ ]*))?/)
if (!mtc) {
console.log("Wrong version string: '" + verzija + "'.")
throw Error()
}
let major = Number(mtc[1])
let minor = Number(mtc[2])
let patch = Number(mtc[3])
if (isNaN(major) || major < 0 || isNaN(minor) || minor < 0 || isNaN(patch) || patch < 0) {
console.log("Wrong version string: '" + verzija + "'.")
throw Error()
}
let timestamp = (new Date()).toISOString();
let res = null
switch (bumpVersion) {
case 'patch':
res = `${ major }.${ minor }.${ patch + 1 } - ${ timestamp }`
break;
case 'minor':
res = `${ major }.${ minor + 1 }.${ 0 } - ${ timestamp }`
break;
case 'major':
res = `${ major + 1 }.${ 0 }.${ 0 } - ${ timestamp }`
break;
default:
throw Error("Wrong bumpVersion: '" + bumpVersion + "'")
}
return `version: '${ res }'`
}
if (args.length == 0) {
console.log("Usage: \nnpm run update-version file [bump-version]\n\nbump version can be major, minor or patch (default).")
throw Error()
}
let bumpVersion = 'patch'
if (args.length == 2) {
bumpVersion = args[1]
if (['major', 'minor', 'patch'].indexOf(bumpVersion) < 0) {
console.log("Invalid version")
throw Error()
}
}
const options = {
files: args[0],
from: /version *: *\'[^\']*\'/g,
to: (match) => pretvori(match, bumpVersion)
};
try {
const results = replace.sync(options);
console.log('Replacement results:', results);
}
catch (error) {
console.error('Error occurred:', error);
}