performLaunch static method
Future<void>
performLaunch(
- Client cloudApiClient,
- FileUploaderFactory fileUploaderFactory,
- CommandLogger logger,
- ProjectLaunch projectSetup, {
- required String consoleServer,
- required bool openBrowser,
- required int deployConcurrency,
- required bool deployDryRun,
- required bool deployShowFiles,
- String? deployOutputPath,
- bool deploySkipTailingStatus = false,
- IOSink? stdout,
- IOSink? stderr,
Implementation
static Future<void> performLaunch(
final Client cloudApiClient,
final FileUploaderFactory fileUploaderFactory,
final CommandLogger logger,
final ProjectLaunch projectSetup, {
required final String consoleServer,
required final bool openBrowser,
required final int deployConcurrency,
required final bool deployDryRun,
required final bool deployShowFiles,
final String? deployOutputPath,
final bool deploySkipTailingStatus = false,
final IOSink? stdout,
final IOSink? stderr,
}) async {
final projectId = projectSetup.projectId;
final projectDir = projectSetup.projectDir;
final usesDb = projectSetup.usesDb;
final configFilePath = projectSetup.configFilePath;
final performDeploy = projectSetup.performDeploy;
if (projectId == null) {
throw StateError('ProjectId must be set.');
}
logger.info(' ');
String actualProjectId;
if (projectSetup.preexistingProject != true) {
actualProjectId = await createProject(
logger,
consoleServer: consoleServer,
openBrowser: openBrowser,
projectName: projectId,
usesDb: usesDb,
);
} else {
actualProjectId = projectId;
}
final safeDartSdk = await ProjectCommands.linkProject(
cloudApiClient,
logger: logger,
projectId: actualProjectId,
projectDirectory: projectDir.path,
configFilePath: configFilePath,
dartVersionOverride: projectSetup.dartVersionOverride,
preDeployScripts: projectSetup.suggestedPreDeployScripts,
suppressCommandMessages: true,
);
logger.info(
'When the server has started, you can access it at:\n'
' Web: https://$actualProjectId.${HostConstants.tenantDomain}/\n'
' API: https://$actualProjectId.api.${HostConstants.tenantDomain}/\n'
' Insights: https://$actualProjectId.insights.${HostConstants.tenantDomain}/',
newParagraph: true,
);
if (!performDeploy) {
logger.terminalCommand(
'scloud launch',
message:
'Deployment skipped. Run this command again to deploy to the cloud:',
newParagraph: true,
);
return;
}
await Deploy.deploy(
cloudApiClient,
fileUploaderFactory,
logger: logger,
projectId: actualProjectId,
projectDir: projectDir.path,
projectConfigFilePath: configFilePath,
concurrency: deployConcurrency,
dryRun: deployDryRun,
showFiles: deployShowFiles,
outputPath: deployOutputPath,
skipTailingStatus: deploySkipTailingStatus,
suppressCommandMessages: true,
dartVersionOverride: safeDartSdk,
stdout: stdout,
stderr: stderr,
);
logger.terminalCommand(
'scloud help deployment',
message: 'To see how to view deployment statuses, run this command:',
newParagraph: true,
);
}