cache convertToHscript in home directory

This commit is contained in:
2022-06-18 15:50:49 +00:00
parent 0dc5d831c4
commit a26e2b32a5

View File

@@ -364,8 +364,12 @@ class Prelude {
}
#if (sys || hxnodejs)
public static function fsMemoize(func:Function, funcName:String, ?caller:Dynamic):Function {
public static function fsMemoize(func:Function, funcName:String, cacheDirectory = "", ?caller:Dynamic):Function {
var fileName = '${funcName}.memoized';
if (cacheDirectory.length > 0) {
FileSystem.createDirectory(cacheDirectory);
fileName = '$cacheDirectory/$fileName';
}
if (!FileSystem.exists(fileName))
File.saveContent(fileName, "{}");
@@ -539,7 +543,21 @@ class Prelude {
}
#if (sys || hxnodejs)
public static var cachedConvertToHScript:String->String = cast(fsMemoize(convertToHScript, "convertToHScript"));
public static function userHome() {
var msysHome = Sys.getEnv("MSYSHOME");
var home = Sys.getEnv("HOME");
var userProfile = Sys.getEnv("UserProfile");
return if (msysHome != null)
msysHome;
else if (home != null)
home;
else if (userProfile != null)
userProfile;
else
throw "Cannot find user's home directory";
}
public static var cachedConvertToHScript:String->String = cast(fsMemoize(convertToHScript, "convertToHScript", '${userHome()}/.kiss-cache'));
#end
public static function getTarget():KissTarget {