parse static method
Parses the project.dart file in currentDir.
Implementation
static Project? parse(String currentDir) {
final projectFile = File('$currentDir/project.dart');
if (!projectFile.existsSync()) {
Logger.error('project.dart not found');
return null;
}
try {
final content = projectFile.readAsStringSync();
_checkDeprecatedTypeField(content);
_warnIfInlineDeclarations(content);
final nameMatch = RegExp(r"name:\s*'([^']+)'").firstMatch(content);
final projectName = nameMatch?.group(1) ?? 'workspace';
final options = _parseProjectOptions(content);
final modules = _parseModules(content);
if (modules.isEmpty && _hasModuleOutsideComments(content)) {
Logger.warn(
'project.dart contains Module() but none were parsed. '
'Check that declarations use multiline format.');
}
return Project(
name: projectName,
options: options,
modules: modules,
);
} catch (e) {
Logger.error(ErrorHelper.describe(e, 'project.dart'));
return null;
}
}