Files
gims/bin/lib/commands/whoami.js
T

51 lines
1.8 KiB
JavaScript

const { color } = require('../utils/colors');
const os = require('os');
class WhoAmICommand {
constructor(git) {
this.git = git;
}
async run() {
const pkg = require('../../../package.json');
// Get SSOT version from S4 (Tags)
const { S4Versioning } = require('../utils/s4');
const s4 = new S4Versioning(this.git);
const version = (await s4.getCurrentVersion()) || pkg.version;
const user = os.userInfo().username;
const hostname = os.hostname();
const platform = os.platform();
const arch = os.arch();
let gitUser = 'unknown';
let gitEmail = 'unknown';
try {
gitUser = (await this.git.raw(['config', 'user.name'])).trim();
gitEmail = (await this.git.raw(['config', 'user.email'])).trim();
} catch (e) { }
console.log(color.bold('\n⚡ GIMS SYSTEM STATUS ⚡\n'));
console.log(`${color.green('SYSTEM_IDENTITY')}`);
console.log(`├─ Host: ${color.cyan(hostname)}`);
console.log(`├─ User: ${color.cyan(user)}`);
console.log(`└─ OS: ${platform} (${arch})`);
console.log(`\n${color.green('GIT_OPERATOR')}`);
console.log(`├─ Name: ${color.cyan(gitUser)}`);
console.log(`└─ Email: ${color.cyan(gitEmail)}`);
console.log(`\n${color.green('TOOL_METRICS')}`);
console.log(`├─ Version: ${color.magenta(version)}`);
console.log(`├─ Engine: Node ${process.version}`);
console.log(`└─ Author: ${pkg.author}`);
console.log('\n' + color.dim('----------------------------------------'));
console.log(color.dim(`Initialized at: ${new Date().toISOString()}`));
}
}
module.exports = { WhoAmICommand };