allerta-vvf/frontend/git.version.js

28 lines
1.1 KiB
JavaScript

//based on https://stackoverflow.com/a/42199863
const { writeFileSync } = require('fs');
const { promisify } = require('util');
const { exec } = require('child_process');
const exec_promise = promisify(exec);
async function createVersionsFile(filename) {
const revision = (await exec_promise('git rev-parse --short HEAD')).stdout.toString().trim();
const revision_timestamp = parseInt((await exec_promise('git log -1 --format="%at"')).stdout.toString().trim())*1000;
const branch = (await exec_promise('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim();
const remote_url = (await exec_promise('git config --get remote.origin.url')).stdout.toString().trim();
console.log(`revision: '${revision}', revision_timestamp: '${revision_timestamp}', branch: '${branch}', remote_url: '${remote_url}'`);
const content =
`// this file is automatically generated by git.version.js script
export const versions = {
revision: '${revision}',
revision_timestamp: ${revision_timestamp},
branch: '${branch}',
remote_url: '${remote_url}'
};`;
writeFileSync(filename, content, {encoding: 'utf8'});
}
createVersionsFile('src/environments/versions.ts');