12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import 'dart:io';
- import 'package:appflowy_backend/appflowy_backend.dart';
- import 'package:path_provider/path_provider.dart';
- import 'package:path/path.dart' as path;
- import '../startup.dart';
- class InitRustSDKTask extends LaunchTask {
- InitRustSDKTask({
- this.directory,
- });
- // Customize the RustSDK initialization path
- final Future<Directory>? directory;
- @override
- LaunchTaskType get type => LaunchTaskType.dataProcessing;
- @override
- Future<void> initialize(LaunchContext context) async {
- // use the custom directory
- if (directory != null) {
- return directory!.then((directory) async {
- await context.getIt<FlowySDK>().init(directory);
- });
- } else {
- return appFlowyDocumentDirectory().then((directory) async {
- await context.getIt<FlowySDK>().init(directory);
- });
- }
- }
- }
- Future<Directory> appFlowyDocumentDirectory() async {
- switch (integrationEnv()) {
- case IntegrationMode.develop:
- Directory documentsDir = await getApplicationDocumentsDirectory();
- return Directory(path.join(documentsDir.path, 'flowy_dev')).create();
- case IntegrationMode.release:
- Directory documentsDir = await getApplicationDocumentsDirectory();
- return Directory(path.join(documentsDir.path, 'flowy')).create();
- case IntegrationMode.test:
- return Directory(path.join(Directory.current.path, '.sandbox'));
- }
- }
|