import { Appsettings } from 'src/app/models/config/appsettings'; import { SoftwareVersion } from './src/app/models/config/software-version'; const jsonFilePath = './src/assets/config.json'; function Main(): void { getVersion() .then(version => { setVersion(version); }) .catch(err => { throw err; }); } async function getVersion(): Promise { const util = require('util'); const exec = util.promisify(require('child_process').exec); let major = '0'; let minor = '0'; let micro = '0'; const branch: string = (await exec('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim(); if (branch.includes('.')) { const versions = branch.split('.'); if (versions.length > 0) { major = versions[0]; } if (versions.length > 1) { minor = versions[1]; } if (versions.length > 2) { micro = versions[2]; } } return new SoftwareVersion(major, minor, micro); } async function setVersion(version: SoftwareVersion) { var fs = require('fs'); fs.readFile(jsonFilePath, 'utf8', (err, data) => { if (err) { throw err; } const settings: Appsettings = JSON.parse(data); settings.WebVersion = version; fs.writeFile(jsonFilePath, JSON.stringify(settings, null, 4), 'utf8', () => {}); }); } Main();