79 lines
2.2 KiB
TypeScript
79 lines
2.2 KiB
TypeScript
import { VersionSettings } from "./src/app/models/config/app-settings";
|
|
import { SoftwareVersion } from "./src/app/models/config/software-version";
|
|
import fs from "fs";
|
|
|
|
const jsonFilePath = "./src/assets/version.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.slice(2).toString().replace(",", ".");
|
|
}
|
|
} else if (branch.startsWith("#")) {
|
|
const fs = require("fs");
|
|
const config: VersionSettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8"));
|
|
major = config.WebVersion.Major;
|
|
minor = config.WebVersion.Minor;
|
|
micro = `dev${branch.split("#")[1]}`;
|
|
} else {
|
|
const fs = require("fs");
|
|
const config: VersionSettings = JSON.parse(fs.readFileSync(jsonFilePath, "utf-8"));
|
|
major = config.WebVersion.Major;
|
|
minor = config.WebVersion.Minor;
|
|
micro = config.WebVersion.Micro;
|
|
}
|
|
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: VersionSettings = 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();
|