const fs = require('fs'); const path = require('path'); /** * Crée un dossier pour un projet donné. * @param {number} projectId - L'ID du projet. * @param {string} baseDir - Le répertoire de base où le dossier du projet sera créé. */ function createProjectDirectory(projectId) { const projectDir = path.join(__dirname, `storage/${projectId}`); console.log(`Creating directory: ${projectDir}`); if (!fs.existsSync(projectDir)) { fs.mkdirSync(projectDir, { recursive: true }); console.log(`Directory created: ${projectDir}`); } else { console.log(`Directory already exists: ${projectDir}`); } } /** * Supprime le dossier d'un projet donné. * @param {number} projectId - L'ID du projet. * @param {string} baseDir - Le répertoire de base où le dossier du projet est situé. */ function deleteProjectDirectory(projectId) { const projectDir = path.join(__dirname, `storage/${projectId}`); if (fs.existsSync(projectDir)) { fs.rmdirSync(projectDir, { recursive: true }); console.log(`Directory deleted: ${projectDir}`); } else { console.log(`Directory does not exist: ${projectDir}`); } } /** * Synchronise les fichiers d'un projet dans son dossier. * @param {number} projectId - L'ID du projet. * @param {string} sourceDir - Le répertoire source des fichiers à synchroniser. * @param {string} baseDir - Le répertoire de base où le dossier du projet est situé. */ function syncProjectFiles(projectId, sourceDir) { const projectDir = path.join(__dirname, `storage/${projectId}`); if (fs.existsSync(sourceDir)) { fs.readdirSync(sourceDir).forEach(file => { const srcFile = path.join(sourceDir, file); const destFile = path.join(projectDir, file); fs.copyFileSync(srcFile, destFile); console.log(`File copied from ${srcFile} to ${destFile}`); }); } else { console.log(`Source directory does not exist: ${sourceDir}`); } } module.exports = { createProjectDirectory, deleteProjectDirectory, syncProjectFiles };