diff --git a/build_package.bat b/build_package.bat index 0f5ccb41..8c2d65af 100644 --- a/build_package.bat +++ b/build_package.bat @@ -1,3 +1,2 @@ -call node .\scripts\node\increase_version.js call .\scripts\batch\build.bat call .\scripts\batch\package.bat \ No newline at end of file diff --git a/scripts/batch/build.bat b/scripts/batch/build.bat index 0da0da4a..1c8a20b1 100644 --- a/scripts/batch/build.bat +++ b/scripts/batch/build.bat @@ -1,3 +1,6 @@ +REM dll version file must be set before compilation and changes can be committed +call node .\scripts\node\set_version_dll.js + cd backend msbuild olympus.sln /t:Build /p:Configuration=Release cd .. @@ -22,4 +25,7 @@ cd .. cd manager call npm run build-release -cd .. \ No newline at end of file +cd .. + +REM other version tags are changed after compilation only in the build folder and should not be committed +call node .\scripts\node\set_version_text.js \ No newline at end of file diff --git a/scripts/node/increase_version.js b/scripts/node/set_version_dll.js similarity index 86% rename from scripts/node/increase_version.js rename to scripts/node/set_version_dll.js index 349ff6b7..ea225d0c 100644 --- a/scripts/node/increase_version.js +++ b/scripts/node/set_version_dll.js @@ -34,7 +34,6 @@ fs.readFile("./version.json", "utf8", (error, data) => { const minorminor = arr[2]; throughDirectory("./backend"); - throughDirectory("./build"); files.forEach((file) => { fs.readFile(file, 'utf8', function (err,data) { @@ -42,13 +41,6 @@ fs.readFile("./version.json", "utf8", (error, data) => { if (err) { return console.log(err); } - if (data.search(/{{OLYMPUS_VERSION_NUMBER}}/g) >= 0) { - console.log(`Replacing version in ${file}`); - - data = data.replace(/{{OLYMPUS_VERSION_NUMBER}}/g, `v${major}.${minor}.${minorminor}`); - data = data.replace(/{{OLYMPUS_COMMIT_HASH}}/g, revision); - fileChanged = true; - } if (data.search(/FILEVERSION \d,\d,\d/g) >= 0) { console.log(`Replacing version in ${file}`); diff --git a/scripts/node/set_version_text.js b/scripts/node/set_version_text.js new file mode 100644 index 00000000..30ffda16 --- /dev/null +++ b/scripts/node/set_version_text.js @@ -0,0 +1,61 @@ +const path = require("path"); +const fs = require("fs"); +let files = []; + +const revision = require('child_process').execSync('git rev-parse --short HEAD').toString().trim(); + +function throughDirectory(directory) { + fs.readdirSync(directory).forEach(file => { + const absolute = path.join(directory, file); + if (!file.includes("increase_version.js") && !file.includes("node_modules")) { + if (fs.statSync(absolute).isDirectory()) + { + return throughDirectory(absolute); + } + else { + return files.push(absolute); + } + } + }); +} + +fs.readFile("./version.json", "utf8", (error, data) => { + if (error) { + console.log(error); + return; + } + const versionJSON = JSON.parse(data); + var version = versionJSON["version"]; + console.log(`Setting version number to ${version}`); + version = version.replace("v", ""); + var arr = version.split("."); + const major = arr[0]; + const minor = arr[1]; + const minorminor = arr[2]; + + throughDirectory("./build"); + + files.forEach((file) => { + fs.readFile(file, 'utf8', function (err,data) { + var fileChanged = false; + if (err) { + return console.log(err); + } + if (data.search(/{{OLYMPUS_VERSION_NUMBER}}/g) >= 0) { + console.log(`Replacing version in ${file}`); + + data = data.replace(/{{OLYMPUS_VERSION_NUMBER}}/g, `v${major}.${minor}.${minorminor}`); + data = data.replace(/{{OLYMPUS_COMMIT_HASH}}/g, revision); + fileChanged = true; + } + + if (fileChanged) { + fs.writeFile(file, data, 'utf8', (err) => { + if (err) return console.log(err); + }); + } + }); + }); +}); + +