init method
void
init()
Initialize the cache directories.
This method does not normally need to be called explicitly as the constructor will call it.
Implementation
void init() {
final root = Directory(rootDir);
final versionFile = File(path.join(rootDir, 'version'));
bool requiresUpdate;
if (root.existsSync()) {
requiresUpdate = !_isCurrentVersion(versionFile);
if (requiresUpdate) {
logger.info(
'Dartle cache version change detected. Performing full cleanup.',
);
ignoreExceptions(
() => Directory(_hashesDir).deleteSync(recursive: true),
);
ignoreExceptions(
() => Directory(_tasksDir).deleteSync(recursive: true),
);
ignoreExceptions(
() => Directory(_executablesDir).deleteSync(recursive: true),
);
}
} else {
root.createSync(recursive: true);
requiresUpdate = true;
}
if (requiresUpdate) {
versionFile.writeAsStringSync(cacheFormatVersion);
}
Directory(_hashesDir).createSync();
Directory(_tasksDir).createSync();
Directory(_executablesDir).createSync();
logger.fine(
() =>
'Cache initialized at ${path.join(Directory.current.path, rootDir)}',
);
}