Display version in frontend

This commit is contained in:
Matteo Gheza 2022-01-03 20:17:17 +01:00
parent e2452d8565
commit 5de340facf
6 changed files with 55 additions and 2 deletions

2
frontend/.gitignore vendored
View File

@ -44,3 +44,5 @@ testem.log
# System Files
.DS_Store
Thumbs.db
src/environments/versions.ts

28
frontend/git.version.js Normal file
View File

@ -0,0 +1,28 @@
//based on https://stackoverflow.com/a/42199863
const { writeFileSync } = require('fs');
const { promisify } = require('util');
const { exec } = require('child_process');
const exec_promise = promisify(exec);
async function createVersionsFile(filename) {
const revision = (await exec_promise('git rev-parse --short HEAD')).stdout.toString().trim();
const revision_timestamp = parseInt((await exec_promise('git log -1 --format="%at"')).stdout.toString().trim())*1000;
const branch = (await exec_promise('git rev-parse --abbrev-ref HEAD')).stdout.toString().trim();
const remote_url = (await exec_promise('git config --get remote.origin.url')).stdout.toString().trim();
console.log(`revision: '${revision}', revision_timestamp: '${revision_timestamp}', branch: '${branch}', remote_url: '${remote_url}'`);
const content =
`// this file is automatically generated by git.version.js script
export const versions = {
revision: '${revision}',
revision_timestamp: ${revision_timestamp},
branch: '${branch}',
remote_url: '${remote_url}'
};`;
writeFileSync(filename, content, {encoding: 'utf8'});
}
createVersionsFile('src/environments/versions.ts');

View File

@ -2,6 +2,8 @@
"name": "allerta-vvf",
"version": "0.0.0",
"scripts": {
"prestart": "node git.version.js",
"prebuild": "node git.version.js",
"ng": "ng",
"start": "ng serve",
"build": "ng build --base-href=./",

View File

@ -7,4 +7,9 @@
<a class="icon" id="menuButton" (click)="menuButtonClicked = !menuButtonClicked"></a>
</div>
<router-outlet></router-outlet>
<router-outlet></router-outlet>
<div id="footer" class="footer text-center p-3">
Allerta-VVF, software libero realizzato per i Vigili del Fuoco volontari.<br>
<p>Revisione {{ versions.revision }} ({{ revision_datetime_string }})</p>
</div>

View File

@ -63,3 +63,14 @@
text-align: left;
}
}
.footer {
background-color: rgba(0, 0, 0, 0.2);
font-style: italic;
margin-top: 2em;
margin-bottom: 0;
}
.footer > :last-child {
margin-bottom: 0;
}

View File

@ -1,5 +1,6 @@
import { Component } from '@angular/core';
import { AuthService } from './_services/auth.service';
import { versions } from 'src/environments/versions';
@Component({
selector: 'app-root',
@ -8,6 +9,10 @@ import { AuthService } from './_services/auth.service';
})
export class AppComponent {
public menuButtonClicked = false;
public revision_datetime_string;
public versions = versions;
constructor(public auth: AuthService) {}
constructor(public auth: AuthService) {
this.revision_datetime_string = new Date(versions.revision_timestamp).toLocaleString(undefined, { day: '2-digit', month: '2-digit', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' });
}
}