resolveKernelCacheDir function
Directory
resolveKernelCacheDir(
- FileSystem fs,
- Directory projectRoot
Resolves a shared kernel cache directory for projectRoot.
Prefer REVALI_KERNEL_CACHE, then test_suite/.revali_kernel_cache when
under the monorepo test suite, else <project>/.dart_tool/revali_kernels.
Implementation
Directory resolveKernelCacheDir(FileSystem fs, Directory projectRoot) {
final env = io.Platform.environment['REVALI_KERNEL_CACHE'];
if (env != null && env.isNotEmpty) {
return fs.directory(env);
}
var dir = projectRoot;
while (true) {
if (dir.basename == 'test_suite' &&
dir.childDirectory('constructs').existsSync()) {
return dir.childDirectory('.revali_kernel_cache');
}
final parent = dir.parent;
if (parent.path == dir.path) {
break;
}
dir = parent;
}
return projectRoot
.childDirectory('.dart_tool')
.childDirectory('revali_kernels');
}