linkProject static method

Future<void> linkProject(
  1. Client cloudApiClient, {
  2. required CommandLogger logger,
  3. required String projectId,
  4. required String projectDirectory,
  5. required String configFilePath,
  6. String? dartVersionOverride,
})

Implementation

static Future<void> linkProject(
  final Client cloudApiClient, {
  required final CommandLogger logger,
  required final String projectId,
  required final String projectDirectory,
  required final String configFilePath,
  final String? dartVersionOverride,
}) 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.',
    () async {
      ProjectFilesWriter.writeFiles(
        projectId: projectId,
        preDeployScripts: [],
        configFilePath: configFilePath,
        projectDirectory: projectDirectory,
        dartSdk: safeDartSdk,
      );
      return true;
    },
  );

  logger.success('Linked Serverpod Cloud project.', newParagraph: true);
}