Improved set version for frontend #70

This commit is contained in:
Sven Heidemann 2022-10-21 13:50:11 +02:00
parent 0fcf2c7b45
commit 47f294a982
3 changed files with 58 additions and 50 deletions

View File

@ -1,6 +1,6 @@
{
"name": "kdb-web",
"version": "0.3.0",
"version": "0.3.dev70",
"scripts": {
"ng": "ng",
"update-version": "ts-node -O '{\"module\": \"commonjs\"}' update-version.ts",

View File

@ -2,8 +2,8 @@
"ApiURL": "http://localhost:5000",
"WebVersion": {
"Major": "0",
"Minor": "0",
"Micro": "0"
"Minor": "3",
"Micro": "dev70"
},
"Themes": [
{

View File

@ -1,54 +1,62 @@
import { Appsettings } from 'src/app/models/config/appsettings';
import { SoftwareVersion } from './src/app/models/config/software-version';
import { Appsettings } from "./src/app/models/config/appsettings";
import { SoftwareVersion } from "./src/app/models/config/software-version";
const jsonFilePath = './src/assets/config.json';
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];
}
}
return new SoftwareVersion(major, minor, micro);
}
async function setVersion(version: SoftwareVersion) {
var 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', () => {});
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", () => {
});
});
}
Main();