@@ -53,6 +53,26 @@ type Settings struct {
53
53
// Global settings override
54
54
var settingsRider SettingsOverride
55
55
56
+ // Map a function to an array of strings
57
+ func MapString (vs []string , f func (string ) string ) []string {
58
+ vsm := make ([]string , len (vs ))
59
+ for i , v := range vs {
60
+ vsm [i ] = f (v )
61
+ }
62
+ return vsm
63
+ }
64
+
65
+ // Print a secret
66
+ func hideSecret (secret string ) string {
67
+ var stars []string
68
+
69
+ for i := 0 ; i < len (secret ); i ++ {
70
+ stars = append (stars , "*" )
71
+ }
72
+
73
+ return strings .Join (stars , "" )
74
+ }
75
+
56
76
// Write settings to disk
57
77
func writeSettings (settings * Settings , configFile string ) error {
58
78
@@ -307,6 +327,8 @@ func prettifyCardNumber(cardNumber string) string {
307
327
// Any 16 digits - group as 4/4/4/4
308
328
var numbers []string
309
329
330
+ // Remove spaces in between
331
+ cardNumber = strings .Join (strings .Split (cardNumber , " " ), "" )
310
332
if len (cardNumber ) == 15 {
311
333
numbers = append (numbers , cardNumber [0 :4 ])
312
334
numbers = append (numbers , cardNumber [4 :10 ])
@@ -347,26 +369,26 @@ func printCardEntry(entry *Entry, settings *Settings, delim bool) error {
347
369
}
348
370
349
371
fmt .Println ()
350
-
351
372
fmt .Printf ("Expiry Date: %s\n " , entry .ExpiryDate )
352
373
374
+ passwd := strings .TrimSpace (entry .Password )
375
+ pin := strings .TrimSpace (entry .Pin )
353
376
if settings .ShowPasswords || settingsRider .ShowPasswords {
354
- fmt .Printf ("Card CVV: %s\n " , entry .Password )
355
- fmt .Printf ("Card PIN: %s\n " , entry .Pin )
356
- } else {
357
- var asterisks1 []string
358
- var asterisks2 []string
359
- var i int
360
377
361
- for i = 0 ; i < len (entry .Password ); i ++ {
362
- asterisks1 = append (asterisks1 , "*" )
378
+ if len (passwd ) > 0 {
379
+ fmt .Printf ("Card CVV: %s\n " , passwd )
380
+ }
381
+ if len (pin ) > 0 {
382
+ fmt .Printf ("Card PIN: %s\n " , pin )
363
383
}
364
- fmt . Printf ( "Card CVV: %s \n " , strings . Join ( asterisks1 , "" ))
384
+ } else {
365
385
366
- for i = 0 ; i < len (entry .Pin ); i ++ {
367
- asterisks2 = append (asterisks2 , "*" )
386
+ if len (passwd ) > 0 {
387
+ fmt .Printf ("Card CVV: %s\n " , hideSecret (passwd ))
388
+ }
389
+ if len (pin ) > 0 {
390
+ fmt .Printf ("Card PIN: %s\n " , hideSecret (passwd ))
368
391
}
369
- fmt .Printf ("Card PIN: %s\n " , strings .Join (asterisks2 , "" ))
370
392
}
371
393
372
394
if len (entry .Tags ) > 0 {
@@ -377,17 +399,14 @@ func printCardEntry(entry *Entry, settings *Settings, delim bool) error {
377
399
}
378
400
// Query extended entries
379
401
customEntries = getExtendedEntries (entry )
380
-
381
402
if len (customEntries ) > 0 {
382
403
for _ , customEntry := range customEntries {
383
404
fmt .Printf ("%s: %s\n " , customEntry .FieldName , customEntry .FieldValue )
384
405
}
385
406
}
386
407
387
408
fmt .Printf ("Modified: %s\n " , entry .Timestamp .Format ("2006-01-02 15:04:05" ))
388
-
389
409
printDelim (settings .Delim , settings .Color )
390
-
391
410
// Reset
392
411
fmt .Printf ("%s" , getColor ("default" ))
393
412
@@ -431,12 +450,7 @@ func printEntry(entry *Entry, delim bool) error {
431
450
if settings .ShowPasswords || settingsRider .ShowPasswords {
432
451
fmt .Printf ("Password: %s\n " , entry .Password )
433
452
} else {
434
- var asterisks []string
435
-
436
- for i := 0 ; i < len (entry .Password ); i ++ {
437
- asterisks = append (asterisks , "*" )
438
- }
439
- fmt .Printf ("Password: %s\n " , strings .Join (asterisks , "" ))
453
+ fmt .Printf ("Password: %s\n " , hideSecret (entry .Password ))
440
454
}
441
455
442
456
if len (entry .Tags ) > 0 {
0 commit comments