suggestFlutterBuildPreDeployHook static method
Future<void>
suggestFlutterBuildPreDeployHook(
- CommandLogger logger,
- ProjectLaunch projectSetup,
- String configFilePath
Implementation
static Future<void> suggestFlutterBuildPreDeployHook(
final CommandLogger logger,
final ProjectLaunch projectSetup,
final String configFilePath,
) async {
final projectDir = projectSetup.projectDir;
if (projectDir == null) {
return;
}
final pubspecValidator = TenantProjectPubspec.fromProjectDir(
Directory(projectDir),
);
if (!pubspecValidator.hasFlutterBuildScript()) return;
ScloudConfig? existingConfig;
try {
existingConfig = ScloudConfigIO.readFromFile(configFilePath);
} catch (_) {
logger.debug('Failed to read config file at $configFilePath');
return;
}
final flutterBuildHook = 'serverpod run flutter_build';
final existingPreDeploy = existingConfig?.scripts.preDeploy ?? [];
if (existingPreDeploy.contains(flutterBuildHook)) return;
final shouldAdd = await logger.confirm(
"Detected 'flutter_build' script. Add it as a pre-deploy hook?",
defaultValue: true,
);
if (!shouldAdd) return;
projectSetup.suggestedPreDeployScripts.add(flutterBuildHook);
}