77 "fmt"
88 "io"
99 "io/fs"
10+ "log"
1011 "os"
1112 "path/filepath"
1213 "strings"
@@ -197,18 +198,44 @@ type persistedKeys struct {
197198 Data json.RawMessage `json:"data"`
198199}
199200
201+ type StoreOpts struct {
202+ Logger * log.Logger
203+ PassFunc util.PassphraseFunc
204+ }
205+
200206func FileSystemStore (dir string , p util.PassphraseFunc ) LocalStore {
201207 return & fileSystemStore {
202208 dir : dir ,
203209 passphraseFunc : p ,
210+ logger : log .New (io .Discard , "" , 0 ),
204211 signerForKeyID : make (map [string ]keys.Signer ),
205212 keyIDsForRole : make (map [string ][]string ),
206213 }
207214}
208215
216+ func FileSystemStoreWithOpts (dir string , opts ... StoreOpts ) LocalStore {
217+ store := & fileSystemStore {
218+ dir : dir ,
219+ passphraseFunc : nil ,
220+ logger : log .New (io .Discard , "" , 0 ),
221+ signerForKeyID : make (map [string ]keys.Signer ),
222+ keyIDsForRole : make (map [string ][]string ),
223+ }
224+ for _ , opt := range opts {
225+ if opt .Logger != nil {
226+ store .logger = opt .Logger
227+ }
228+ if opt .PassFunc != nil {
229+ store .passphraseFunc = opt .PassFunc
230+ }
231+ }
232+ return store
233+ }
234+
209235type fileSystemStore struct {
210236 dir string
211237 passphraseFunc util.PassphraseFunc
238+ logger * log.Logger
212239
213240 signerForKeyID map [string ]keys.Signer
214241 keyIDsForRole map [string ][]string
@@ -526,7 +553,7 @@ func (f *fileSystemStore) ChangePassphrase(role string) error {
526553 keys , _ , err := f .loadPrivateKeys (role )
527554 if err != nil {
528555 if os .IsNotExist (err ) {
529- fmt .Printf ("Failed to change passphrase. Missing keys file for %s role. \n " , role )
556+ f . logger .Printf ("Failed to change passphrase. Missing keys file for %s role. \n " , role )
530557 }
531558 return err
532559 }
@@ -548,7 +575,7 @@ func (f *fileSystemStore) ChangePassphrase(role string) error {
548575 if err := util .AtomicallyWriteFile (f .keysPath (role ), append (data , '\n' ), 0600 ); err != nil {
549576 return err
550577 }
551- fmt .Printf ("Successfully changed passphrase for %s keys file\n " , role )
578+ f . logger .Printf ("Successfully changed passphrase for %s keys file\n " , role )
552579 return nil
553580}
554581
0 commit comments