From 3e0fc237b9be704c87338881a4e95894f6287492 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Wed, 2 Aug 2023 22:55:50 +0200
Subject: [PATCH] Config => Add some folders const and init

---
 ExerciceChecker/src/config/Config.ts | 30 ++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/ExerciceChecker/src/config/Config.ts b/ExerciceChecker/src/config/Config.ts
index 73fd829..3c17a1f 100644
--- a/ExerciceChecker/src/config/Config.ts
+++ b/ExerciceChecker/src/config/Config.ts
@@ -1,6 +1,11 @@
+import fs   from 'fs';
+import path from 'path';
+
+
 class Config {
-    public readonly filesFolder: string;
-    public readonly resultsFolder: string;
+    public readonly folders: {
+        project: string; resultsVolume: string; resultsDojo: string; resultsExercice: string
+    };
 
     public readonly exercice: {
         id: string; secret: string;
@@ -11,8 +16,13 @@ class Config {
     };
 
     constructor() {
-        this.filesFolder = process.env.FILES_FOLDER || './';
-        this.resultsFolder = process.env.RESULTS_FOLDER || '';
+        this.folders = {
+            project        : process.env.FILES_FOLDER || './',
+            resultsVolume  : process.env.RESULTS_VOLUME || '',
+            resultsDojo    : path.join(process.env.RESULTS_VOLUME || './', 'Dojo/'),
+            resultsExercice: path.join(process.env.RESULTS_VOLUME || './', 'Exercice/')
+        };
+        this.resetResultsVolume();
 
         this.exercice = {
             id    : process.env.DOJO_EXERCICE_ID || '',
@@ -23,6 +33,18 @@ class Config {
             projectName: process.env.DOCKER_COMPOSE_PROJECT_NAME || ''
         };
     }
+
+    private resetResultsVolume(): void {
+        if ( this.folders.resultsVolume !== '' && fs.existsSync(this.folders.resultsVolume) ) {
+            fs.rmSync(this.folders.resultsVolume, {
+                recursive: true,
+                force    : true
+            });
+        }
+        fs.mkdirSync(this.folders.resultsVolume, { recursive: true });
+        fs.mkdirSync(this.folders.resultsDojo, { recursive: true });
+        fs.mkdirSync(this.folders.resultsExercice, { recursive: true });
+    }
 }
 
 
-- 
GitLab