launch static method
Future<void>
launch(
- Client cloudApiClient,
- FileUploaderFactory fileUploaderFactory, {
- required CommandLogger logger,
- required String? specifiedProjectDir,
- required String? foundProjectDir,
- required String? newProjectId,
- required String? existingProjectId,
- required bool? enableDb,
- required bool? performDeploy,
Implementation
static Future<void> launch(
final Client cloudApiClient,
final FileUploaderFactory fileUploaderFactory, {
required final CommandLogger logger,
required final String? specifiedProjectDir,
required final String? foundProjectDir,
required final String? newProjectId,
required final String? existingProjectId,
required final bool? enableDb,
required final bool? performDeploy,
}) async {
await ProjectCommands.checkPlanAvailability(
cloudApiClient,
logger: logger,
);
if (newProjectId != null && existingProjectId != null) {
throw ArgumentError(
'Cannot specify both newProjectId and existingProjectId.',
);
}
logger.init('Launching new Serverpod Cloud project.\n');
final projectSetup = ProjectLaunch(
projectDir: specifiedProjectDir,
projectId: newProjectId ?? existingProjectId,
enableDb: enableDb,
preexistingProject: existingProjectId != null,
performDeploy: performDeploy,
);
await selectProjectDir(
logger,
projectSetup,
foundProjectDir,
);
await selectProjectId(
cloudApiClient,
logger,
projectSetup,
);
if (projectSetup.preexistingProject != true) {
await selectEnableDb(
logger,
projectSetup,
);
}
await selectPerformDeploy(
logger,
projectSetup,
);
await confirmSetupAndContinue(
logger,
projectSetup,
);
await performLaunch(
cloudApiClient,
fileUploaderFactory,
logger,
projectSetup,
);
}