diff --git a/AssignmentChecker/src/app.ts b/AssignmentChecker/src/app.ts index bb70d037ccab50afff41a9b5e1767a8a0d278881..1299507d82a3f09332fc29f77f13c2231c442312 100644 --- a/AssignmentChecker/src/app.ts +++ b/AssignmentChecker/src/app.ts @@ -1,17 +1,20 @@ // Read from the .env file // ATTENTION : This lines MUST be the first of this file (except for the path import) const path = require('node:path'); -require('dotenv').config({ - path : path.join(__dirname, '../.env'), - DOTENV_KEY: 'dotenv://:key_f1778b6998874f6fd78c716ccef982c5595fa300f174b129eafc88ba7044d69b@dotenv.local/vault/.env.vault?environment=development' - }); +const myEnv = require('dotenv').config({ + path : path.join(__dirname, '../.env'), + DOTENV_KEY: 'dotenv://:key_f1778b6998874f6fd78c716ccef982c5595fa300f174b129eafc88ba7044d69b@dotenv.local/vault/.env.vault?environment=development' + }); +require('dotenv-expand').expand(myEnv); require('./shared/helpers/TypeScriptExtensions'); // ATTENTION : This line MUST be the second of this file -import Styles from './types/Style'; -import { exec } from 'child_process'; -import util from 'util'; -import HttpManager from './managers/HttpManager'; -import Config from './config/Config'; +import AssignmentValidator from './sharedByClients/helpers/Dojo/AssignmentValidator'; +import Styles from './types/Style'; +import { exec } from 'child_process'; +import util from 'util'; +import HttpManager from './managers/HttpManager'; +import Config from './config/Config'; +import Icon from './sharedByClients/types/Icon'; (async () => { @@ -20,4 +23,38 @@ import Config from './config/Config'; HttpManager.registerAxiosInterceptor(); console.log(Styles.APP_NAME(`${ Config.appName } (version {{VERSION}})`)); + + const assignmentValidator = new AssignmentValidator(Config.folders.project); + + try { + await new Promise<void>((resolve, reject) => { + assignmentValidator.events.on('step', (name: string, message: string) => { + console.log(Styles.CAT_INFO(`${ Icon.CAT_INFO } ${ message }`)); + }); + + assignmentValidator.events.on('subStep', (name: string, message: string) => { + console.log(Styles.INFO(`\t${ Icon.INFO } ${ message }`)); + }); + + assignmentValidator.events.on('endSubStep', (stepName: string, message: string, error: boolean) => { + if ( error ) { + console.error(Styles.ERROR(`\t${ Icon.ERROR } ${ message }`)); + } + }); + + assignmentValidator.events.on('endStep', (stepName: string, message: string, error: boolean) => { + if ( error ) { + console.error(Styles.ERROR(`${ Icon.ERROR } ${ message }`)); + } + }); + + assignmentValidator.events.on('finished', (success: boolean, exitCode: number) => { + success ? resolve() : reject(); + }); + + assignmentValidator.run(); + }); + } catch ( error ) { } + + process.exit(assignmentValidator.exitCode); })(); \ No newline at end of file