@@ -300,6 +300,27 @@ func printDelim(delimChar string, color string) {
300
300
fmt .Println (strings .Join (delims , "" ))
301
301
}
302
302
303
+ // Prettify credit/debit card numbers
304
+ func prettifyCardNumber (cardNumber string ) string {
305
+
306
+ // Amex cards are 15 digits - group as 4, 6, 5
307
+ // Any 16 digits - group as 4/4/4/4
308
+ var numbers []string
309
+
310
+ if len (cardNumber ) == 15 {
311
+ numbers = append (numbers , cardNumber [0 :4 ])
312
+ numbers = append (numbers , cardNumber [4 :10 ])
313
+ numbers = append (numbers , cardNumber [10 :15 ])
314
+ } else if len (cardNumber ) == 16 {
315
+ numbers = append (numbers , cardNumber [0 :4 ])
316
+ numbers = append (numbers , cardNumber [4 :8 ])
317
+ numbers = append (numbers , cardNumber [8 :12 ])
318
+ numbers = append (numbers , cardNumber [12 :16 ])
319
+ }
320
+
321
+ return strings .Join (numbers , " " )
322
+ }
323
+
303
324
// Print a card entry to the console
304
325
func printCardEntry (entry * Entry , settings * Settings , delim bool ) error {
305
326
@@ -317,7 +338,7 @@ func printCardEntry(entry *Entry, settings* Settings, delim bool) error {
317
338
fmt .Printf ("ID: %d\n " , entry .ID )
318
339
fmt .Printf ("Card Name: %s\n " , entry .Title )
319
340
fmt .Printf ("Card Holder: %s\n " , entry .User )
320
- fmt .Printf ("Card Number: %s\n " , entry .Url )
341
+ fmt .Printf ("Card Number: %s\n " , prettifyCardNumber ( entry .Url ) )
321
342
fmt .Printf ("Card Type: %s\n " , entry .Class )
322
343
323
344
if entry .Issuer != "" {
0 commit comments