mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
[ACA-4231] Added a table format to the scan-env command (#6490)
This commit is contained in:
parent
f791a7aa98
commit
1f8082d8e1
@ -1,6 +1,9 @@
|
|||||||
const { AlfrescoApiCompatibility, PeopleApi, NodesApi, GroupsApi, SitesApi, SearchApi } = require('@alfresco/js-api');
|
const { AlfrescoApiCompatibility, PeopleApi, NodesApi, GroupsApi, SitesApi, SearchApi } = require('@alfresco/js-api');
|
||||||
const program = require('commander');
|
const program = require('commander');
|
||||||
|
|
||||||
|
interface PeopleTally { enabled: number, disabled: number }
|
||||||
|
interface RowToPrint { label: string, value: number }
|
||||||
|
|
||||||
const MAX_ATTEMPTS = 10;
|
const MAX_ATTEMPTS = 10;
|
||||||
const TIMEOUT = 60000;
|
const TIMEOUT = 60000;
|
||||||
const MAX_PEOPLE_PER_PAGE = 100;
|
const MAX_PEOPLE_PER_PAGE = 100;
|
||||||
@ -20,22 +23,42 @@ export default async function main(_args: string[]) {
|
|||||||
|
|
||||||
await attemptLogin();
|
await attemptLogin();
|
||||||
|
|
||||||
|
const rowsToPrint: Array<RowToPrint> = [];
|
||||||
const peopleCount = await getPeopleCount();
|
const peopleCount = await getPeopleCount();
|
||||||
console.log('Active Users :', peopleCount.enabled);
|
rowsToPrint.push({ label: 'Active Users', value: peopleCount.enabled });
|
||||||
console.log('Deactivated Users :', peopleCount.disabled);
|
rowsToPrint.push({ label: 'Deactivated Users', value: peopleCount.disabled });
|
||||||
|
rowsToPrint.push({ label: "User's Home Folders", value: await getHomeFoldersCount() });
|
||||||
|
rowsToPrint.push({ label: 'Groups', value: await getGroupsCount() });
|
||||||
|
rowsToPrint.push({ label: 'Sites', value: await getSitesCount() });
|
||||||
|
rowsToPrint.push({ label: 'Files', value: await getFilesCount() });
|
||||||
|
|
||||||
const homeFoldersCount = await getHomeFoldersCount();
|
console.log(generateTable(rowsToPrint));
|
||||||
console.log("User's Home Folders :", homeFoldersCount);
|
|
||||||
|
|
||||||
const groupsCount = await getGroupsCount();
|
}
|
||||||
console.log('Groups :', groupsCount);
|
|
||||||
|
|
||||||
const sitesCount = await getSitesCount();
|
function generateTable(rowsToPrint: Array<RowToPrint>) {
|
||||||
console.log('Sites :', sitesCount);
|
const columnWidths = rowsToPrint.reduce((maxWidths, row: RowToPrint) => {
|
||||||
|
return {
|
||||||
|
labelColumn: Math.max(maxWidths.labelColumn, row.label.length),
|
||||||
|
valueColumn: Math.max(maxWidths.valueColumn, row.value.toString().length)
|
||||||
|
};
|
||||||
|
}, { labelColumn: 12, valueColumn: 1 });
|
||||||
|
|
||||||
|
const horizontalLine = ''.padEnd(columnWidths.labelColumn + columnWidths.valueColumn + 5, '═');
|
||||||
|
const headerText = 'ENVIRONM'.padStart(Math.floor((columnWidths.labelColumn + columnWidths.valueColumn + 3) / 2), ' ')
|
||||||
|
+ 'ENT SCAN'.padEnd(Math.ceil((columnWidths.labelColumn + columnWidths.valueColumn + 3) / 2), ' ');
|
||||||
|
|
||||||
const filesCount = await getFilesCount();
|
const reset = '\x1b[0m', grey = '\x1b[90m', cyan = '\x1b[36m', yellow = '\x1b[93m', bright = '\x1b[1m';
|
||||||
console.log('Files :', filesCount);
|
|
||||||
|
|
||||||
|
let tableString = `${grey}╒${horizontalLine}╕${reset}
|
||||||
|
${grey}│ ${bright}${cyan}${headerText} ${grey}│${reset}
|
||||||
|
${grey}╞${horizontalLine}╡${reset}`;
|
||||||
|
rowsToPrint.forEach(row => {
|
||||||
|
tableString += `\n${grey}│${reset} ${row.label.padEnd(columnWidths.labelColumn, ' ')} ${yellow}${row.value.toString().padEnd(columnWidths.valueColumn, ' ')} ${grey}│${reset}`;
|
||||||
|
});
|
||||||
|
tableString += `\n${grey}╘${horizontalLine}╛${reset}`;
|
||||||
|
|
||||||
|
return tableString;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function attemptLogin() {
|
async function attemptLogin() {
|
||||||
@ -59,7 +82,6 @@ async function attemptLogin() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface PeopleTally { enabled: number, disabled: number }
|
|
||||||
async function getPeopleCount(skipCount: number = 0): Promise<PeopleTally> {
|
async function getPeopleCount(skipCount: number = 0): Promise<PeopleTally> {
|
||||||
try {
|
try {
|
||||||
const peopleApi = new PeopleApi(jsApiConnection);
|
const peopleApi = new PeopleApi(jsApiConnection);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user