36 lines
No EOL
1 KiB
JavaScript
36 lines
No EOL
1 KiB
JavaScript
const { AUTO_UPDATE_SCHEDULE } = require('../config.js').MAIN;
|
|
|
|
const simpleGit = require('simple-git');
|
|
const { CronJob } = require('cron');
|
|
const restartApp = require('./reloadApp.js');
|
|
const log = require('../utils/log.js');
|
|
const discordWebhooks = require('./discord.js');
|
|
|
|
const git = simpleGit();
|
|
|
|
const pull = async () => {
|
|
await discordWebhooks(4, 'Updating the local repository in progress `(git pull)`...');
|
|
log(0, 'Running git pull...');
|
|
|
|
try {
|
|
const { summary } = await git.pull();
|
|
log(0, `Changes: ${summary.changes}; Deletions: ${summary.insertions}; Insertions: ${summary.insertions}`);
|
|
await discordWebhooks(4, `**Changes:** ${summary.changes}; **Deletions:** ${summary.insertions}; **Insertions:** ${summary.insertions}`);
|
|
} catch (err) {
|
|
log(2, err);
|
|
}
|
|
};
|
|
|
|
const pullAndRestart = async () => {
|
|
try {
|
|
await pull();
|
|
await restartApp();
|
|
} catch (err) {
|
|
log(2, err);
|
|
}
|
|
};
|
|
|
|
// https://crontab.guru
|
|
new CronJob(AUTO_UPDATE_SCHEDULE, pullAndRestart, null, true, 'UTC');
|
|
|
|
module.exports = pull; |