diff --git a/kiss/src/kiss/CompilerTools.hx b/kiss/src/kiss/CompilerTools.hx index e86e00e8..3503ae23 100644 --- a/kiss/src/kiss/CompilerTools.hx +++ b/kiss/src/kiss/CompilerTools.hx @@ -59,9 +59,7 @@ class CompilerTools { // TODO this assumes the user hasn't put folders in the folder, which // would cause a failure because we're not deleting recursively if (FileSystem.exists(args.outputFolder)) { - for (file in FileSystem.readDirectory(args.outputFolder)) { - FileSystem.deleteFile(Path.join([args.outputFolder, file])); - } + Prelude.walkDirectory(null, args.outputFolder, (file) -> FileSystem.deleteFile(file), null, (folder) -> FileSystem.deleteDirectory(folder)); FileSystem.deleteDirectory(args.outputFolder); } @@ -148,8 +146,8 @@ class CompilerTools { var envFolder = '${args.outputFolder}-env'; Prelude.assertProcess("python", ["-m", "venv", envFolder]); var envBinDir = if (Sys.systemName() == "Windows") "Scripts" else "bin"; - trace(Prelude.assertProcess("ls", [envFolder]).replace("\n", " ")); - trace(Prelude.assertProcess("ls", [Path.join([envFolder, envBinDir])]).replace("\n", " ")); + // trace(Prelude.assertProcess("ls", [envFolder]).replace("\n", " ")); + // trace(Prelude.assertProcess("ls", [Path.join([envFolder, envBinDir])]).replace("\n", " ")); var envPython = Path.join([envFolder, envBinDir, "python"]); command = envPython; switch (args.langProjectFile.extension()) { diff --git a/kiss/src/kiss/Prelude.hx b/kiss/src/kiss/Prelude.hx index b38da42e..d67e214d 100644 --- a/kiss/src/kiss/Prelude.hx +++ b/kiss/src/kiss/Prelude.hx @@ -376,14 +376,18 @@ class Prelude { private static var kissProcess:Process = null; #end - public static function walkDirectory(basePath, directory, processFile:(String) -> Void, processSubdirectory:(String) -> Void) { + public static function walkDirectory(basePath, directory, processFile:(String) -> Void, ?processFolderBefore:(String) -> Void, + ?processFolderAfter:(String) -> Void) { #if (sys || hxnodejs) for (fileOrFolder in FileSystem.readDirectory(joinPath(basePath, directory))) { switch (fileOrFolder) { case folder if (FileSystem.isDirectory(joinPath(basePath, directory, folder))): var subdirectory = joinPath(directory, folder); - processSubdirectory(subdirectory); - walkDirectory(basePath, subdirectory, processFile, processSubdirectory); + if (processFolderBefore != null) + processFolderBefore(subdirectory); + walkDirectory(basePath, subdirectory, processFile, processFolderBefore, processFolderAfter); + if (processFolderAfter != null) + processFolderAfter(subdirectory); case file: processFile(joinPath(directory, file)); }