resolveOrmProject function
Implementation
OrmProjectContext resolveOrmProject({String? configPath}) {
if (configPath != null && configPath.trim().isNotEmpty) {
final normalized = p.normalize(
p.isAbsolute(configPath)
? configPath
: p.join(Directory.current.path, configPath),
);
final file = File(normalized);
if (!file.existsSync()) {
throw StateError('Config file $normalized not found.');
}
final root = findProjectRoot(file.parent);
return OrmProjectContext(root: root, configFile: file);
}
final nearest = _findNearestOrmProjectConfig(Directory.current);
if (nearest != null) {
final root = findProjectRoot(nearest.parent);
return OrmProjectContext(root: root, configFile: nearest);
}
final root = findProjectRoot();
final fallback = File(p.join(root.path, 'ormed.yaml'));
if (!fallback.existsSync()) {
final legacy = File(p.join(root.path, 'ormed.yaml'));
if (legacy.existsSync()) return OrmProjectContext(root: root, configFile: legacy);
throw StateError(
'Missing ormed.yaml. Run `ormed init` or provide --config path.',
);
}
return OrmProjectContext(root: root, configFile: fallback);
}