rust_sdk.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'dart:io';
  2. import 'package:appflowy_backend/appflowy_backend.dart';
  3. import 'package:path_provider/path_provider.dart';
  4. import 'package:path/path.dart' as path;
  5. import '../startup.dart';
  6. class InitRustSDKTask extends LaunchTask {
  7. const InitRustSDKTask({
  8. this.directory,
  9. });
  10. // Customize the RustSDK initialization path
  11. final Directory? directory;
  12. @override
  13. LaunchTaskType get type => LaunchTaskType.dataProcessing;
  14. @override
  15. Future<void> initialize(LaunchContext context) async {
  16. final dir = directory ?? await appFlowyDocumentDirectory();
  17. await context.getIt<FlowySDK>().init(dir);
  18. }
  19. }
  20. Future<Directory> appFlowyDocumentDirectory() async {
  21. switch (integrationEnv()) {
  22. case IntegrationMode.develop:
  23. Directory documentsDir = await getApplicationDocumentsDirectory()
  24. ..create();
  25. return Directory(path.join(documentsDir.path, 'data_dev')).create();
  26. case IntegrationMode.release:
  27. Directory documentsDir = await getApplicationDocumentsDirectory();
  28. return Directory(path.join(documentsDir.path, 'data')).create();
  29. case IntegrationMode.test:
  30. return Directory(path.join(Directory.current.path, '.sandbox'));
  31. }
  32. }