From 6560afa2b5c48e659836b4040a4b9e5f7914b072 Mon Sep 17 00:00:00 2001 From: Ralf Vogler Date: Mon, 28 Aug 2023 01:17:57 +0200 Subject: [PATCH] version.js to check if running the latest version --- version.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 version.js diff --git a/version.js b/version.js new file mode 100644 index 0000000..170ed42 --- /dev/null +++ b/version.js @@ -0,0 +1,49 @@ +// check if running the latest version + +import {log} from 'console'; +import { existsSync, readFileSync } from 'fs'; +import { exec } from 'child_process'; + +const execp = (cmd) => new Promise((resolve, reject) => { + exec(cmd, (error, stdout, stderr) => { + if (stderr) console.error(`stderr: ${stderr}`); + // if (stdout) console.log(`stdout: ${stdout}`); + if (error) { + console.log(`error: ${error.message}`); + if (error.message.includes('command not found')) { + console.info('Install git to check for updates!'); + } + return reject(); + } + resolve(stdout.trim()); + }); +}); + +const git_main = () => readFileSync('.git/refs/heads/main').toString().trim(); + +let sha, date; +if (existsSync('/.dockerenv')) { + log('Running inside Docker.'); + ['COMMIT', 'BRANCH', 'NOW'].forEach(v => log(` ${v}:`, process.env[v])); + sha = process.env.COMMIT; + date = process.env.NOW; +} else { + log('Not running inside Docker.'); + sha = await execp('git rev-parse HEAD'); + date = await execp('git show -s --format=%cD'); // same as format as `date -R` (RFC2822) + // date = await execp('git show -s --format=%ch'); // %ch is same as --date=human (short/relative) +} + +const gh = await (await fetch('https://api.github.com/repos/vogler/free-games-claimer/commits/main', { + // headers: { accept: 'application/vnd.github.VERSION.sha' } + })).json(); +// log(gh); + +log('Local commit:', sha, new Date(date)); +log('Online commit:', gh.sha, new Date(gh.commit.committer.date)); + +if (sha == gh.sha) { + log('Running the latest version!') +} else { + log('Not running the latest version!') +}