diff closest

This commit is contained in:
Yuri Kuznetsov
2022-09-12 15:07:32 +03:00
parent 6a4c78c1cb
commit beb4435ee0
3 changed files with 38 additions and 14 deletions

View File

@@ -381,7 +381,7 @@ module.exports = grunt => {
});
grunt.registerTask('upgrade', () => {
cp.execSync("node diff --all --vendor", {stdio: 'inherit'});
cp.execSync("node diff --closest", {stdio: 'inherit'});
});
grunt.registerTask('unit-tests-run', () => {

30
diff.js
View File

@@ -47,6 +47,7 @@ let isDev = false;
let isAll = false;
let withVendor = true;
let forceScripts = false;
let isClosest = false;
if (process.argv.length > 1) {
for (let i in process.argv) {
@@ -67,6 +68,10 @@ if (process.argv.length > 1) {
forceScripts = true;
}
if (process.argv[i] === '--closest') {
isClosest = true;
}
if (~process.argv[i].indexOf('--acceptedVersion=')) {
acceptedVersionName = process.argv[i].substr(('--acceptedVersion=').length);
}
@@ -75,22 +80,33 @@ if (process.argv.length > 1) {
let espoPath = path.dirname(fs.realpathSync(__filename));
if (isAll || isClosest) {
acceptedVersionName = null;
}
let diff = new Diff(espoPath, {
isAll: isAll,
isDev: isDev,
withVendor: withVendor,
forceScripts: forceScripts,
acceptedVersionName: !isAll ? acceptedVersionName : null,
acceptedVersionName: acceptedVersionName,
});
if (isAll) {
diff.buildAllUpgradePackages();
}
(() => {
if (isAll) {
diff.buildAllUpgradePackages();
return;
}
if (isClosest) {
diff.buildClosestUpgradePackages();
return;
}
if (!isAll) {
if (!versionFrom) {
throw new Error("No 'version' specified.");
}
diff.buildUpgradePackage(versionFrom);
}
})();

View File

@@ -27,14 +27,12 @@
************************************************************************/
const fs = require('fs');
const sys = require('util');
const cp = require('child_process');
const archiver = require('archiver');
const process = require('process');
const buildUtils = require('./build-utils');
const exec = cp.exec;
const execSync = cp.execSync;
/**
* Builds upgrade packages.
@@ -59,13 +57,19 @@ class Diff
return tagList;
}
buildClosestUpgradePackages() {
let versionFromList = this._getPreviousVersionList(true);
this.buildMultipleUpgradePackages(versionFromList);
}
buildAllUpgradePackages() {
let versionFromList = this._getPreviousVersionList();
this.buildMultipleUpgradePackages(versionFromList);
}
_getPreviousVersionList() {
_getPreviousVersionList(closest) {
let dirInitial = process.cwd();
let version = (require(this.espoPath + '/package.json') || {}).version;
@@ -105,6 +109,12 @@ class Diff
for (let i = 0; i < tagList.length; i++) {
let tag = tagList[i];
let patchVersionNumberI = tag.split('.')[2];
if (closest && parseInt(patchVersionNumberI) !== parseInt(hotfixVersionNumber) - 1) {
break;
}
if (tag === version) {
continue;
}
@@ -112,8 +122,6 @@ class Diff
if (!~tag.indexOf('beta') && !~tag.indexOf('alpha')) {
versionFromList.push(tag);
let patchVersionNumberI = tag.split('.')[2];
if (patchVersionNumberI === '0') {
break;
}
@@ -156,7 +164,7 @@ class Diff
return new Promise(resolve => {
let acceptedVersionName = params.acceptedVersionName || versionFrom;
let isDev = params.isDev;
let withVendor = params.withVendor;
let withVendor = params.withVendor ?? true;
let forceScripts = params.forceScripts;
let version = (require(espoPath + '/package.json') || {}).version;