From b62f93bfd52ae15bf1b6fee5d3a23f6b15954332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Tue, 19 Mar 2024 17:55:11 +0100 Subject: [PATCH] Delete Gamesystems from Filesystem --- app/DeleteModel.js | 36 +++++++++++++++++ app/DeleteModel.ts | 40 +++++++++++++++++++ app/main.ts | 2 + src/app/app.component.ts | 1 + testModel/gamesystems/ParentTestSystem/A.json | 32 --------------- 5 files changed, 79 insertions(+), 32 deletions(-) delete mode 100644 testModel/gamesystems/ParentTestSystem/A.json diff --git a/app/DeleteModel.js b/app/DeleteModel.js index 563c8fb..c9d7b3f 100644 --- a/app/DeleteModel.js +++ b/app/DeleteModel.js @@ -9,6 +9,42 @@ class DeleteTransaction { fs.unlinkSync(filename); console.log("Delete ", filename); } + static deleteGamesystem(projectDir, componentName) { + const gamesystemDir = path.join(projectDir, "gamesystems"); + const gamesystemFile = this.findGamesystemPath(gamesystemDir, componentName); + try { + if (gamesystemFile != undefined) { + console.log("Delete Gamesystem under File: ", gamesystemFile); + if (fs.lstatSync(gamesystemFile).isDirectory()) { + fs.rmSync(gamesystemFile, { recursive: true, force: true }); + } + else { + fs.unlinkSync(gamesystemFile); + } + } + } + catch (e) { + console.log(e); + } + } + static findGamesystemPath(gamesystemRootDir, searchedFilename) { + const directoriesToProcess = []; + directoriesToProcess.push(gamesystemRootDir); + while (directoriesToProcess.length > 0) { + const currentDirectory = directoriesToProcess.shift(); + const filesInDirectory = fs.readdirSync(currentDirectory); + for (let i = 0; i < filesInDirectory.length; i++) { + const currentFile = path.join(currentDirectory, filesInDirectory[i]); + if (fs.lstatSync(currentFile).isDirectory()) { + directoriesToProcess.push(currentFile); + } + if (path.parse(path.basename(currentFile)).name === searchedFilename) { + return currentFile; + } + } + } + return undefined; + } } exports.DeleteTransaction = DeleteTransaction; //# sourceMappingURL=DeleteModel.js.map \ No newline at end of file diff --git a/app/DeleteModel.ts b/app/DeleteModel.ts index cd00d88..3ac58f2 100644 --- a/app/DeleteModel.ts +++ b/app/DeleteModel.ts @@ -1,5 +1,6 @@ import * as path from "node:path"; import * as fs from "fs"; +import {json} from "node:stream/consumers"; export class DeleteTransaction { static deleteScriptAccount(projectDir: string, componentName: string) { @@ -7,4 +8,43 @@ export class DeleteTransaction { fs.unlinkSync(filename) console.log("Delete ", filename) } + + static deleteGamesystem(projectDir: string, componentName: string) { + const gamesystemDir = path.join(projectDir, "gamesystems") + const gamesystemFile = this.findGamesystemPath(gamesystemDir, componentName) + try { + if(gamesystemFile != undefined) { + console.log("Delete Gamesystem under File: ", gamesystemFile) + if(fs.lstatSync(gamesystemFile).isDirectory()) { + fs.rmSync(gamesystemFile, {recursive: true, force: true}) + } else { + fs.unlinkSync(gamesystemFile) + } + } + }catch (e) { + console.log(e) + } + + } + + static findGamesystemPath(gamesystemRootDir: string, searchedFilename: string) { + const directoriesToProcess: string[] = []; + directoriesToProcess.push(gamesystemRootDir); + while(directoriesToProcess.length > 0) { + const currentDirectory = directoriesToProcess.shift(); + const filesInDirectory = fs.readdirSync(currentDirectory!) + for(let i=0; i