@@ -300,6 +300,27 @@ func printDelim(delimChar string, color string) {
300300 fmt .Println (strings .Join (delims , "" ))
301301}
302302
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+
303324// Print a card entry to the console
304325func printCardEntry (entry * Entry , settings * Settings , delim bool ) error {
305326
@@ -317,7 +338,7 @@ func printCardEntry(entry *Entry, settings* Settings, delim bool) error {
317338 fmt .Printf ("ID: %d\n " , entry .ID )
318339 fmt .Printf ("Card Name: %s\n " , entry .Title )
319340 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 ) )
321342 fmt .Printf ("Card Type: %s\n " , entry .Class )
322343
323344 if entry .Issuer != "" {
0 commit comments