72 lines
1.9 KiB
TypeScript
72 lines
1.9 KiB
TypeScript
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<SoftwareVersion> {
|
|
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];
|
|
}
|
|
} else if (branch.startsWith("#")) {
|
|
const fs = require("fs");
|
|
const config: Appsettings = JSON.parse(fs.readFileSync(jsonFilePath, 'utf-8'))
|
|
major = config.WebVersion.Major;
|
|
minor = config.WebVersion.Minor;
|
|
micro = `dev${branch.split("#")[1]}`;
|
|
}
|
|
return new SoftwareVersion(major, minor, micro);
|
|
}
|
|
|
|
|
|
async function setVersion(version: SoftwareVersion) {
|
|
const fs = require("fs");
|
|
fs.readFile(jsonFilePath, "utf8", (err: Error, data: string) => {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
const settings: Appsettings = JSON.parse(data);
|
|
settings.WebVersion = version;
|
|
fs.writeFile(jsonFilePath, JSON.stringify(settings, null, 4), "utf8", () => {
|
|
});
|
|
});
|
|
fs.readFile('./package.json', "utf8", (err: Error, data: string) => {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
const settings = JSON.parse(data);
|
|
settings.version = version.getVersionString();
|
|
fs.writeFile('./package.json', JSON.stringify(settings, null, 4), "utf8", () => {
|
|
});
|
|
});
|
|
}
|
|
|
|
Main();
|