import path from 'path'; import execScriptCommand from './execScriptCommand.js'; import reloadServer from './reloadServer.js'; // Define constants and constants defaults import { constants, isEnvTrue, getEnvValue } from './../constants/index.js'; // Define timer reference let timer; export const gitSync = async () => { const commandToExecute = getEnvValue(constants.ENV_HLAMBDA_GIT_SYNC_COMMAND); // TODO: Implement actuall git pull and check for the results, including auth. const result = await execScriptCommand(commandToExecute); // console.log(result); if (!result.stdout.includes('Already up to date.') && result.code === 0) { console.log('GitSync - Reloading...'.yellow); await reloadServer(); } }; export const stopGitSync = async () => { if (timer) { clearInterval(timer); } }; export const startGitSync = async () => { const HLAMBDA_GIT_SYNC_INTERVAL_SECONDS = parseInt(getEnvValue(constants.ENV_HLAMBDA_GIT_SYNC_INTERVAL_SECONDS), 10); if (typeof HLAMBDA_GIT_SYNC_INTERVAL_SECONDS === 'number' && HLAMBDA_GIT_SYNC_INTERVAL_SECONDS !== 0) { // All good console.log('Git sync started!'.green); } else { console.log('Git sync disabled. Git sync interval seconds are set to 0.'.red); return; } timer = setInterval(async () => { try { console.log('[tick] Git Sync!'.yellow); await gitSync(); } catch (error) { console.log(error); } }, HLAMBDA_GIT_SYNC_INTERVAL_SECONDS * 1000); }; export default startGitSync;