implemented user backups

This commit is contained in:
Fabian Freund
2025-12-18 18:38:06 +01:00
parent 2f1ecd50e1
commit 018915298a
19 changed files with 1172 additions and 78 deletions
+17
View File
@@ -20,6 +20,8 @@
import 'dart:async';
import 'dart:io';
import 'package:collection/collection.dart';
import 'package:nullability/nullability.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:sqlite3/sqlite3.dart';
@@ -64,6 +66,21 @@ class _Filesystem {
return fs.writeStartupProfile(profilesDir, profile, flush: true);
}
Future<void> clearMozillaProfileCache(String profileId) {
return fs.clearMozillaProfileCache(profileId);
}
Future<String?> checkForDuplicateMozillaProfile(UuidValue profile) async {
final duplicates = await fs
.getProfilesWithDuplicateMozillaProfiles(profilesDir)
.then((dirs) => dirs.map((dir) => dir.path).toList());
final profileDir = fs.getProfileDir(profilesDir, profile).path;
return duplicates
.firstWhereOrNull((dir) => p.isWithin(profileDir, dir))
.mapNotNull((dir) => p.basename(dir));
}
Future<void> _linkMozillaDir(Directory filesDir) async {
final mozillaDir = Directory(p.join(selectedProfileDir.path, 'mozilla'));
await mozillaDir.create();