suggestFlutterBuildPreDeployHook static method

Future<void> suggestFlutterBuildPreDeployHook(
  1. CommandLogger logger,
  2. ProjectLaunch projectSetup
)

Implementation

static Future<void> suggestFlutterBuildPreDeployHook(
  final CommandLogger logger,
  final ProjectLaunch projectSetup,
) async {
  if (!projectSetup.includePreDeployScripts) return;

  final projectPubspec = projectSetup.projectPubspec;
  final configFilePath = projectSetup.configFilePath;

  if (!projectPubspec.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;

  logger.debug(
    "Detected 'flutter_build' script. Adding it as a pre-deploy hook.",
  );
  projectSetup.suggestedPreDeployScripts.add(flutterBuildHook);
}