ensureStorageManagedStateIsGitIgnored function

Future<void> ensureStorageManagedStateIsGitIgnored()

Ensures that Storage managed state is ignored by Git.

Implementation

Future<void> ensureStorageManagedStateIsGitIgnored() async {
  final file = File("cloudflare/.gitignore");
  if (!file.existsSync()) {
    throw StateError(
      "The file `cloudflare/.gitignore` does not exist. Initialize "
      "Cloudflare Workers before enabling Storage.",
    );
  }
  final lines = await file.readAsLines();
  if (lines.any((line) => line.trim() == "storage.yaml")) {
    return;
  }
  lines.add("storage.yaml");
  await file.writeAsString("${lines.join("\n")}\n");
}