walkDirectory process folders before/after
This commit is contained in:
@@ -59,9 +59,7 @@ class CompilerTools {
|
|||||||
// TODO this assumes the user hasn't put folders in the folder, which
|
// TODO this assumes the user hasn't put folders in the folder, which
|
||||||
// would cause a failure because we're not deleting recursively
|
// would cause a failure because we're not deleting recursively
|
||||||
if (FileSystem.exists(args.outputFolder)) {
|
if (FileSystem.exists(args.outputFolder)) {
|
||||||
for (file in FileSystem.readDirectory(args.outputFolder)) {
|
Prelude.walkDirectory(null, args.outputFolder, (file) -> FileSystem.deleteFile(file), null, (folder) -> FileSystem.deleteDirectory(folder));
|
||||||
FileSystem.deleteFile(Path.join([args.outputFolder, file]));
|
|
||||||
}
|
|
||||||
FileSystem.deleteDirectory(args.outputFolder);
|
FileSystem.deleteDirectory(args.outputFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,8 +146,8 @@ class CompilerTools {
|
|||||||
var envFolder = '${args.outputFolder}-env';
|
var envFolder = '${args.outputFolder}-env';
|
||||||
Prelude.assertProcess("python", ["-m", "venv", envFolder]);
|
Prelude.assertProcess("python", ["-m", "venv", envFolder]);
|
||||||
var envBinDir = if (Sys.systemName() == "Windows") "Scripts" else "bin";
|
var envBinDir = if (Sys.systemName() == "Windows") "Scripts" else "bin";
|
||||||
trace(Prelude.assertProcess("ls", [envFolder]).replace("\n", " "));
|
// trace(Prelude.assertProcess("ls", [envFolder]).replace("\n", " "));
|
||||||
trace(Prelude.assertProcess("ls", [Path.join([envFolder, envBinDir])]).replace("\n", " "));
|
// trace(Prelude.assertProcess("ls", [Path.join([envFolder, envBinDir])]).replace("\n", " "));
|
||||||
var envPython = Path.join([envFolder, envBinDir, "python"]);
|
var envPython = Path.join([envFolder, envBinDir, "python"]);
|
||||||
command = envPython;
|
command = envPython;
|
||||||
switch (args.langProjectFile.extension()) {
|
switch (args.langProjectFile.extension()) {
|
||||||
|
|||||||
@@ -376,14 +376,18 @@ class Prelude {
|
|||||||
private static var kissProcess:Process = null;
|
private static var kissProcess:Process = null;
|
||||||
#end
|
#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)
|
#if (sys || hxnodejs)
|
||||||
for (fileOrFolder in FileSystem.readDirectory(joinPath(basePath, directory))) {
|
for (fileOrFolder in FileSystem.readDirectory(joinPath(basePath, directory))) {
|
||||||
switch (fileOrFolder) {
|
switch (fileOrFolder) {
|
||||||
case folder if (FileSystem.isDirectory(joinPath(basePath, directory, folder))):
|
case folder if (FileSystem.isDirectory(joinPath(basePath, directory, folder))):
|
||||||
var subdirectory = joinPath(directory, folder);
|
var subdirectory = joinPath(directory, folder);
|
||||||
processSubdirectory(subdirectory);
|
if (processFolderBefore != null)
|
||||||
walkDirectory(basePath, subdirectory, processFile, processSubdirectory);
|
processFolderBefore(subdirectory);
|
||||||
|
walkDirectory(basePath, subdirectory, processFile, processFolderBefore, processFolderAfter);
|
||||||
|
if (processFolderAfter != null)
|
||||||
|
processFolderAfter(subdirectory);
|
||||||
case file:
|
case file:
|
||||||
processFile(joinPath(directory, file));
|
processFile(joinPath(directory, file));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user