resolveServerRootDir static method
The absolute server package directory serverRootDir names.
An empty value searches from startDir or the current directory, which
may prompt unless interactive is false, or null in CI.
Implementation
static Future<String> resolveServerRootDir(
String serverRootDir, {
required bool? interactive,
Directory? startDir,
}) async {
// Auto-detect server directory if not specified
if (serverRootDir.isEmpty) {
// Determine if we should use interactive mode
// Priority: explicit flag > CI detection > default (true)
final isInteractive = interactive ?? !ci.isCI;
var serverDir = await ServerDirectoryFinder.findOrPrompt(
startDir: startDir,
interactive: isInteractive,
);
serverRootDir = serverDir.path;
}
// Anchor the path once at resolution time,
// so a later cwd change doesn't silently retarget config lookups.
return p.normalize(p.absolute(serverRootDir));
}