From e10d1910d4a93f1333f415dc4170cec581f334bf Mon Sep 17 00:00:00 2001 From: GPlay97 Date: Sun, 31 Oct 2021 17:51:06 +0100 Subject: [PATCH] Resolves client version --- index.js | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 82c9979..e41b9c0 100644 --- a/index.js +++ b/index.js @@ -24,7 +24,7 @@ const app = express(); app.set('view engine', 'ejs'); -const getVersions = async () => { +const getVersionFiles = async() => { return new Promise((resolve, reject) => { fs.readdir(path.join(__dirname, 'versions'), { encoding: 'utf-8' @@ -33,11 +33,19 @@ const getVersions = async () => { if (rollbar) rollbar.error(err); return reject(err); } - resolve(files.map(file => file.replace('.json', ''))); + + resolve(files); }); }); }; +const getVersions = async () => { + return new Promise((resolve) => { + getVersionFiles() + .then((files) => resolve(files.map(file => file.replace('.json', '')))); + }); +}; + const getServerVersion = async () => { return new Promise((resolve) => { execCmd('git rev-parse HEAD') @@ -49,7 +57,24 @@ const getServerVersion = async () => { const getClientVersion = async () => { return new Promise((resolve) => { execCmd('cd /opt/evnotipi && sudo git rev-parse HEAD') - .then(resolve) + .then((currentVersion) => { + getVersionFiles() + .then(async (files) => { + for (const file in files) { + if (files.hasOwnProperty(file)) { + const version = files[file].replace('.json', ''); + + const data = await getVersion(version); + + if (data.commit === currentVersion) { + return resolve(version); + } + } + } + + resolve(currentVersion); + }); + }) .catch(() => resolve('?')); }); };