From e1a95405c1a1e68efc55a03779be12dd9f46845c Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sat, 13 Apr 2024 12:42:51 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=91=20Remove=20watch-for-changes=20scr?= =?UTF-8?q?ipt,=20no=20longer=20needed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - services/healthcheck.js | 2 +- services/watch-for-changes.js | 78 ----------------------------------- 3 files changed, 1 insertion(+), 80 deletions(-) delete mode 100644 services/watch-for-changes.js diff --git a/package.json b/package.json index d361ecc4..b0b20794 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "lint": "vue-cli-service lint", "pm2-start": "npx pm2 start server.js", "build-watch": "vue-cli-service build --watch --mode production", - "watch-config": "node services/watch-for-changes", "build-and-start": "NODE_OPTIONS=--openssl-legacy-provider npm-run-all --parallel build start", "validate-config": "node services/config-validator", "health-check": "node services/healthcheck", diff --git a/services/healthcheck.js b/services/healthcheck.js index f6eca0cc..a869b64f 100644 --- a/services/healthcheck.js +++ b/services/healthcheck.js @@ -14,7 +14,7 @@ const isDocker = !!process.env.IS_DOCKER; /* Get the port to use (depending on, if docker, if SSL) */ const sslPort = process.env.SSL_PORT || (isDocker ? 443 : 4001); -const normalPort = process.env.PORT || (isDocker ? 80 : 4000); +const normalPort = process.env.PORT || (isDocker ? 8080 : 4000); const port = isSsl ? sslPort : normalPort; const host = process.env.HOST || '0.0.0.0'; diff --git a/services/watch-for-changes.js b/services/watch-for-changes.js deleted file mode 100644 index a66000b2..00000000 --- a/services/watch-for-changes.js +++ /dev/null @@ -1,78 +0,0 @@ -const fs = require('fs'); -const { exec } = require('child_process'); -const path = require('path'); -const crypto = require('crypto'); - -// Default location of config file in container -const configFileName = '../public/conf.yml'; -// Real path of config file in container -const configFilePath = path.resolve(__dirname, configFileName); -// Amount of time to ignore file after change detected -const debounceTimeMs = 2000; - -// Store current timeout -let timeout = null; -// Store last hash of file -let lastHash = null; - -/** - * Calculate hash of file, used for de-bounce mechanism to - * prevent successive updates if file content not changed - */ -const hashFileContent = (filePath) => { - const content = fs.readFileSync(filePath, 'utf8'); - return crypto.createHash('sha256').update(content).digest('hex'); -}; - -/** - * Just logs a given message to terminal so user knows what's happening - */ -const logInfo = (message, msgLevel = 'OUTPUT') => { - const RESET = '\x1b[0m'; - let logLevels = {}; - switch (msgLevel) { - case 'ERROR': logLevels = { col: '\x1b[31m', func: console.error }; break; - case 'WARNING': logLevels = { col: '\x1b[33m', func: console.warn }; break; - case 'INFO': logLevels = { col: '\x1b[36m', func: console.info }; break; - case 'SUCCESS': logLevels = { col: '\x1b[32m', func: console.log }; break; - default: logLevels = { col: RESET, func: console.log }; - } - logLevels.func(`${logLevels.col}\x1b[1m[${msgLevel}]${RESET} ${logLevels.col}${message}${RESET}\n`); -}; - -// Log initial message to user -logInfo(`When '${configFileName}' is updated, a rebuild will be triggered.\n`); - -/** - * Code to be executed when a watch event is triggered - * Will check correctly expected file and time frame, - * then ensure the hash is different from last hash, - * and then trigger -rebuild of frontend with yarn build - * outputting the stdrout and stderr to user's terminal - */ -const watchAction = (eventType, filename) => { - if (filename && eventType === 'change') { - if (timeout) clearTimeout(timeout); - timeout = setTimeout(() => { - const currentHash = hashFileContent(configFilePath); - if (currentHash !== lastHash) { - lastHash = currentHash; - logInfo(`${filename} file Changed, running build...`); - exec('yarn build', (error, stdout, stderr) => { - if (error) { - logInfo(error, 'ERROR'); - return; - } - logInfo(stdout); - logInfo(stderr, 'WARNING'); - logInfo('Build completed successfully.\n', 'SUCCESS'); - }); - } else { - logInfo(`${filename} file Detected change, but content is the same. Skipping....`, 'WARNING'); - } - }, debounceTimeMs); - } -}; - -// Watch given config path, with the watch action function -fs.watch(configFilePath, watchAction);