findPackagePath static method
Implementation
static Future<String> findPackagePath() async {
final packageConfigFile =
File(path.join('.dart_tool', 'package_config.json').fixPath);
if (!packageConfigFile.existsSync()) {
throw CopierException("`${packageConfigFile.path}` not found.");
}
final packageConfigContent =
jsonDecode(await packageConfigFile.readAsString());
final packages = packageConfigContent['packages'] as List;
final package = packages.firstWhere((pkg) => pkg['name'] == 'fontresoft',
orElse: () => null);
if (package == null) {
throw Exception("Package fontresoft not found in package_config.json.");
}
final rootUri = package['rootUri'] as String;
final packageConfigDir = packageConfigFile.parent.path;
print(packageConfigDir);
final resolvedRootUri = rootUri.contains('file:///')
? Uri.parse(rootUri).toFilePath(windows: Platform.isWindows).fixPath
: path.normalize(path.join(packageConfigDir, rootUri)).fixPath;
return resolvedRootUri;
}