From 2bb0646f48c34c226b015ba093c57515ed23898a Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sat, 7 Nov 2020 10:05:20 +0100 Subject: [PATCH] Log errors if public/private key is empty This shouldn't ever happen. It means a migration has gone wrong. --- lib/repository.dart | 17 ++++++++++++++++- lib/settings.dart | 2 +- lib/settings_migrations.dart | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/repository.dart b/lib/repository.dart index 805c3be6..cef382d3 100644 --- a/lib/repository.dart +++ b/lib/repository.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:dart_git/config.dart'; import 'package:dart_git/dart_git.dart'; import 'package:path/path.dart' as p; import 'package:shared_preferences/shared_preferences.dart'; @@ -88,6 +89,7 @@ class Repository with ChangeNotifier { var remoteConfigured = false; + List remotes; if (repoDirStat.type != FileSystemEntityType.directory) { Log.i("Calling GitInit for ${settings.folderName} at: $repoPath"); await GitRepository.init(repoPath); @@ -95,10 +97,23 @@ class Repository with ChangeNotifier { settings.save(); } else { var gitRepo = await GitRepository.load(repoPath); - var remotes = gitRepo.config.remotes; + remotes = gitRepo.config.remotes; remoteConfigured = remotes.isNotEmpty; } + if (remoteConfigured) { + if (settings.sshPublicKey == null || settings.sshPublicKey.isEmpty) { + var remoteNames = remotes.map((e) => e.name + ' ' + e.url).toList(); + Log.e("Public Key Empty for $remoteNames"); + logExceptionWarning(Exception("Public Key Empty"), StackTrace.current); + } + if (settings.sshPrivateKey == null || settings.sshPrivateKey.isEmpty) { + var remoteNames = remotes.map((e) => e.name + ' ' + e.url).toList(); + Log.e("Private Key Empty for $remoteNames"); + logExceptionWarning(Exception("Private Key Empty"), StackTrace.current); + } + } + return Repository._internal( repoPath: repoPath, gitBaseDirectory: gitBaseDir, diff --git a/lib/settings.dart b/lib/settings.dart index 9c0f093e..55d67e01 100644 --- a/lib/settings.dart +++ b/lib/settings.dart @@ -4,11 +4,11 @@ import 'package:collection/collection.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:path/path.dart' as p; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:uuid/uuid.dart'; import 'package:gitjournal/core/sorting_mode.dart'; import 'package:gitjournal/folder_views/common.dart'; import 'package:gitjournal/screens/note_editor.dart'; -import 'package:uuid/uuid.dart'; const DEFAULT_ID = "0"; diff --git a/lib/settings_migrations.dart b/lib/settings_migrations.dart index 0e2ec879..8188541f 100644 --- a/lib/settings_migrations.dart +++ b/lib/settings_migrations.dart @@ -1,9 +1,9 @@ import 'dart:io'; -import 'package:gitjournal/settings.dart'; import 'package:path/path.dart' as p; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:gitjournal/settings.dart'; import 'package:gitjournal/utils/logger.dart'; Future migrateSettings(