mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-18 16:17:03 +00:00
42 lines
753 B
Go
42 lines
753 B
Go
package vault
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"io/fs"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
type Keychain struct {
|
|
Helper string
|
|
}
|
|
|
|
func GetHelper(vaultDir string) (string, error) {
|
|
var keychain Keychain
|
|
|
|
if _, err := os.Stat(filepath.Join(vaultDir, "keychain.json")); errors.Is(err, fs.ErrNotExist) {
|
|
return "", nil
|
|
}
|
|
|
|
b, err := os.ReadFile(filepath.Join(vaultDir, "keychain.json"))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
if err := json.Unmarshal(b, &keychain); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return keychain.Helper, nil
|
|
}
|
|
|
|
func SetHelper(vaultDir, helper string) error {
|
|
b, err := json.MarshalIndent(Keychain{Helper: helper}, "", " ")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return os.WriteFile(filepath.Join(vaultDir, "keychain.json"), b, 0o600)
|
|
}
|