findDpkYamlDirectory function
Implementation
Future<Directory?> findDpkYamlDirectory(Directory startDirectory) async {
// Get workspace info to determine boundaries
final workspaceInfo = await getWorkspaceInfo(startDirectory);
final stopDirectory = workspaceInfo.workspaceRoot;
var currentDir = startDirectory;
while (true) {
final configFile = File(join(currentDir.path, kConfigFileName));
if (configFile.existsSync()) {
return currentDir;
}
// Stop at workspace root (don't search parent directories outside workspace)
if (stopDirectory != null && currentDir.path == stopDirectory.path) {
return null;
}
final parentDir = currentDir.parent;
if (parentDir.path == currentDir.path) {
return null; // Reached filesystem root
}
currentDir = parentDir;
}
}