Files
scrutiny/webapp/frontend/git.version.ts
T
2022-05-26 23:44:13 -07:00

30 lines
915 B
TypeScript

import { writeFileSync } from 'fs';
import { dedent } from 'tslint/lib/utils';
import { promisify } from 'util';
import * as child from 'child_process';
const exec = promisify(child.exec);
async function createVersionsFile(filename: string) {
let versionInfo = ''
if(process.env.GIT_VERSION){
versionInfo = process.env.GIT_VERSION
} else {
const tag = (await exec('git describe --tags')).stdout.toString().trim();
const branch = (await exec('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim();
versionInfo = (branch === 'master' ? tag : branch + '#' + tag)
}
const content = dedent`
// this file is automatically generated by git.version.ts script
export const versionInfo = {
version: '${versionInfo}',
};`;
writeFileSync(filename, content, {encoding: 'utf8'});
}
createVersionsFile('src/environments/versions.ts');