cacheBaseDir method

Directory cacheBaseDir({
  1. String? override,
  2. Map<String, String>? environment,
})

The cache's base directory, absolute: override, then cacheDirEnv, then the operating system's cache directory for name.

Absolute even when override is relative: a relative path turns into a wrong one in the first child process that runs from another directory — Maven, for one.

Implementation

Directory cacheBaseDir({String? override, Map<String, String>? environment}) {
  if (override != null && override.trim().isNotEmpty) {
    return Directory(override.trim()).absolute;
  }
  final env = environment ?? Platform.environment;
  final fromEnv = cacheDirEnv == null ? null : env[cacheDirEnv];
  if (fromEnv != null && fromEnv.trim().isNotEmpty) {
    return Directory(fromEnv.trim()).absolute;
  }
  return Directory(defaultCacheBasePath(environment: env)).absolute;
}