mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 04:36:43 +00:00
feat(BRIDGE-116): add command-line switches to enable/disable keychain check on macOS.
This commit is contained in:
@ -31,15 +31,20 @@ const (
|
||||
MacOSKeychain = "macos-keychain"
|
||||
)
|
||||
|
||||
func listHelpers() (Helpers, string) {
|
||||
func listHelpers(skipKeychainTest bool) (Helpers, string) {
|
||||
helpers := make(Helpers)
|
||||
|
||||
// MacOS always provides a keychain.
|
||||
if isUsable(newMacOSHelper("")) {
|
||||
if skipKeychainTest {
|
||||
logrus.WithField("pkg", "keychain").Info("Skipping macOS keychain test")
|
||||
helpers[MacOSKeychain] = newMacOSHelper
|
||||
logrus.WithField("keychain", "MacOSKeychain").Info("Keychain is usable.")
|
||||
} else {
|
||||
logrus.WithField("keychain", "MacOSKeychain").Debug("Keychain is not available.")
|
||||
if isUsable(newMacOSHelper("")) {
|
||||
helpers[MacOSKeychain] = newMacOSHelper
|
||||
logrus.WithField("keychain", "MacOSKeychain").Info("Keychain is usable.")
|
||||
} else {
|
||||
logrus.WithField("keychain", "MacOSKeychain").Debug("Keychain is not available.")
|
||||
}
|
||||
}
|
||||
|
||||
// Use MacOSKeychain by default.
|
||||
|
||||
@ -31,7 +31,7 @@ const (
|
||||
SecretServiceDBus = "secret-service-dbus"
|
||||
)
|
||||
|
||||
func listHelpers() (Helpers, string) {
|
||||
func listHelpers(_ bool) (Helpers, string) {
|
||||
helpers := make(Helpers)
|
||||
|
||||
if isUsable(newDBusHelper("")) {
|
||||
|
||||
@ -25,7 +25,7 @@ import (
|
||||
|
||||
const WindowsCredentials = "windows-credentials"
|
||||
|
||||
func listHelpers() (Helpers, string) {
|
||||
func listHelpers(_ bool) (Helpers, string) {
|
||||
helpers := make(Helpers)
|
||||
// Windows always provides a keychain.
|
||||
if isUsable(newWinCredHelper("")) {
|
||||
|
||||
@ -62,9 +62,9 @@ type List struct {
|
||||
// NewList checks availability of every keychains detected on the User Operating System
|
||||
// This will ask the user to unlock keychain(s) to check their usability.
|
||||
// This should only be called once.
|
||||
func NewList() *List {
|
||||
func NewList(skipKeychainTest bool) *List {
|
||||
var list = List{locker: &sync.Mutex{}}
|
||||
list.helpers, list.defaultHelper = listHelpers()
|
||||
list.helpers, list.defaultHelper = listHelpers(skipKeychainTest)
|
||||
return &list
|
||||
}
|
||||
|
||||
|
||||
@ -117,7 +117,7 @@ func TestInsertReadRemove(t *testing.T) {
|
||||
|
||||
func TestIsErrKeychainNoItem(t *testing.T) {
|
||||
r := require.New(t)
|
||||
helpers := NewList().GetHelpers()
|
||||
helpers := NewList(false).GetHelpers()
|
||||
|
||||
for helperName := range helpers {
|
||||
kc, err := NewKeychain(helperName, "bridge-test", helpers, helperName)
|
||||
|
||||
Reference in New Issue
Block a user