linkProject static method
Implementation
static Future<String?> linkProject(
final Client cloudApiClient, {
required final CommandLogger logger,
required final String projectId,
required final String projectDirectory,
required final String configFilePath,
final String? dartVersionOverride,
final List<String> preDeployScripts = const [],
final bool suppressCommandMessages = false,
}) async {
var safeDartSdk = ProjectDartVersionHint.normalizeBareMajorMinorOverride(
dartVersionOverride,
);
if (safeDartSdk != null) {
ensureValidVersionConstraint(
safeDartSdk,
sourceDescription: '(from --dart-version flag)',
);
} else {
safeDartSdk = resolveProjectDartSdkVersion(Directory(projectDirectory));
}
await logger.progress(
'Writing cloud project configuration files',
successMessage: 'Configuration files written.',
padRight: StatusCommands.progressMessagePadLength,
() async {
ProjectFilesWriter.writeFiles(
projectId: projectId,
preDeployScripts: preDeployScripts,
configFilePath: configFilePath,
projectDirectory: projectDirectory,
dartSdk: safeDartSdk,
);
return true;
},
);
if (!suppressCommandMessages) {
logger.success('Linked Serverpod Cloud project.', newParagraph: true);
}
return safeDartSdk;
}