@@ -248,7 +248,7 @@ func addNewEntry() error {
248
248
err , passwd = generateStrongPassword ()
249
249
fmt .Printf ("done" )
250
250
}
251
- // fmt.Printf("Password => %s\n", passwd)
251
+ // fmt.Printf("Password => %s\n", passwd)
252
252
253
253
notes = readInput (reader , "\n Notes" )
254
254
@@ -405,7 +405,7 @@ func editCurrentEntry(idString string) error {
405
405
fmt .Printf ("\n Generating new password ..." )
406
406
err , passwd = generateStrongPassword ()
407
407
}
408
- // fmt.Printf("Password => %s\n", passwd)
408
+ // fmt.Printf("Password => %s\n", passwd)
409
409
410
410
fmt .Printf ("\n Current Notes: %s\n " , entry .Notes )
411
411
notes = readInput (reader , "New Notes" )
@@ -434,7 +434,7 @@ func listCurrentEntry(idString string) error {
434
434
435
435
id , _ = strconv .Atoi (idString )
436
436
437
- // fmt.Printf("Listing current entry - %d\n", id)
437
+ // fmt.Printf("Listing current entry - %d\n", id)
438
438
err , entry = getEntryById (id )
439
439
if err != nil || entry == nil {
440
440
fmt .Printf ("No entry found for id %d\n " , id )
@@ -444,7 +444,7 @@ func listCurrentEntry(idString string) error {
444
444
err = printEntry (entry , true )
445
445
446
446
if err == nil && settingsRider .CopyPassword {
447
- // fmt.Printf("Copying password " + entry.Password + " to clipboard\n")
447
+ // fmt.Printf("Copying password " + entry.Password + " to clipboard\n")
448
448
copyPasswordToClipboard (entry .Password )
449
449
}
450
450
@@ -547,17 +547,51 @@ func findCurrentEntry(term string) error {
547
547
return err
548
548
}
549
549
550
+ // Remove a range of entries <id1>-<id2> say 10-14
551
+ func removeMultipleEntries (idRangeEntry string ) error {
552
+
553
+ var err error
554
+ var idRange []string
555
+ var id1 , id2 int
556
+
557
+ idRange = strings .Split (idRangeEntry , "-" )
558
+
559
+ if len (idRange ) != 2 {
560
+ fmt .Println ("Invalid id range - " + idRangeEntry )
561
+ return errors .New ("Invalid id range - " + idRangeEntry )
562
+ }
563
+
564
+ id1 , _ = strconv .Atoi (idRange [0 ])
565
+ id2 , _ = strconv .Atoi (idRange [1 ])
566
+
567
+ if id1 >= id2 {
568
+ fmt .Println ("Invalid id range - " + idRangeEntry )
569
+ return errors .New ("Invalid id range - " + idRangeEntry )
570
+ }
571
+
572
+ for idNum := id1 ; idNum <= id2 ; idNum ++ {
573
+ err = removeCurrentEntry (fmt .Sprintf ("%d" , idNum ))
574
+ }
575
+
576
+ return err
577
+ }
578
+
550
579
// Remove current entry by id
551
580
func removeCurrentEntry (idString string ) error {
552
581
553
582
var err error
554
583
var entry * Entry
555
584
var id int
585
+ var response string
556
586
557
587
if err = checkActiveDatabase (); err != nil {
558
588
return err
559
589
}
560
590
591
+ if strings .Contains (idString , "-" ) {
592
+ return removeMultipleEntries (idString )
593
+ }
594
+
561
595
id , _ = strconv .Atoi (idString )
562
596
563
597
err , entry = getEntryById (id )
@@ -566,10 +600,18 @@ func removeCurrentEntry(idString string) error {
566
600
return err
567
601
}
568
602
569
- // Drop from the database
570
- err = removeDatabaseEntry (entry )
571
- if err == nil {
572
- fmt .Printf ("Entry with id %d was removed from the database\n " , id )
603
+ printEntryMinimal (entry , true )
604
+
605
+ response = readInput (bufio .NewReader (os .Stdin ), "Please confirm removal [Y/n]: " )
606
+
607
+ if strings .ToLower (response ) != "n" {
608
+ // Drop from the database
609
+ err = removeDatabaseEntry (entry )
610
+ if err == nil {
611
+ fmt .Printf ("Entry with id %d was removed from the database\n " , id )
612
+ }
613
+ } else {
614
+ fmt .Println ("Removal of entry canceled by user." )
573
615
}
574
616
575
617
return err
@@ -655,7 +697,7 @@ func encryptDatabase(dbPath string, givenPasswd *string) error {
655
697
}
656
698
}
657
699
658
- // err = encryptFileAES(dbPath, passwd)
700
+ // err = encryptFileAES(dbPath, passwd)
659
701
_ , settings := getOrCreateLocalConfig (APP )
660
702
661
703
switch settings .Cipher {
@@ -796,7 +838,7 @@ func exportToMarkdown(fileName string) error {
796
838
}
797
839
}
798
840
799
- // fmt.Printf("%+v\n", maxLengths)
841
+ // fmt.Printf("%+v\n", maxLengths)
800
842
fh , err = os .Create (fileName )
801
843
if err != nil {
802
844
fmt .Printf ("Cannt open \" %s\" for writing - \" %s\" \n " , fileName , err .Error ())
@@ -810,7 +852,7 @@ func exportToMarkdown(fileName string) error {
810
852
// Write markdown header
811
853
for idx , length := range maxLengths {
812
854
delta := length - len (headers [idx ])
813
- // fmt.Printf("%d\n", delta)
855
+ // fmt.Printf("%d\n", delta)
814
856
if delta > 0 {
815
857
for i := 0 ; i < delta + 2 ; i ++ {
816
858
headers [idx ] += " "
@@ -872,7 +914,7 @@ func exportToPDF(fileName string) error {
872
914
}
873
915
874
916
tmpFile = randomFileName (os .TempDir (), ".tmp" )
875
- // fmt.Printf("Temp file => %s\n", tmpFile)
917
+ // fmt.Printf("Temp file => %s\n", tmpFile)
876
918
err = exportToMarkdownLimited (tmpFile )
877
919
878
920
if err == nil {
@@ -889,7 +931,7 @@ func exportToPDF(fileName string) error {
889
931
890
932
if pdfTkFound && len (passwd ) > 0 {
891
933
tmpFile = randomFileName ("." , ".pdf" )
892
- // fmt.Printf("pdf file => %s\n", tmpFile)
934
+ // fmt.Printf("pdf file => %s\n", tmpFile)
893
935
args = []string {fileName , "output" , tmpFile , "user_pw" , passwd }
894
936
cmd = exec .Command ("pdftk" , args ... )
895
937
_ , err = cmd .Output ()
@@ -935,7 +977,7 @@ func exportToMarkdownLimited(fileName string) error {
935
977
}
936
978
}
937
979
938
- // fmt.Printf("%+v\n", maxLengths)
980
+ // fmt.Printf("%+v\n", maxLengths)
939
981
fh , err = os .Create (fileName )
940
982
if err != nil {
941
983
fmt .Printf ("Cannt open \" %s\" for writing - \" %s\" \n " , fileName , err .Error ())
@@ -949,7 +991,7 @@ func exportToMarkdownLimited(fileName string) error {
949
991
// Write markdown header
950
992
for idx , length := range maxLengths {
951
993
delta := length - len (headers [idx ])
952
- // fmt.Printf("%d\n", delta)
994
+ // fmt.Printf("%d\n", delta)
953
995
if delta > 0 {
954
996
for i := 0 ; i < delta + 2 ; i ++ {
955
997
headers [idx ] += " "
@@ -1000,7 +1042,7 @@ func exportToHTML(fileName string) error {
1000
1042
return err
1001
1043
}
1002
1044
1003
- // fmt.Printf("%+v\n", maxLengths)
1045
+ // fmt.Printf("%+v\n", maxLengths)
1004
1046
fh , err = os .Create (fileName )
1005
1047
if err != nil {
1006
1048
fmt .Printf ("Cannt open \" %s\" for writing - \" %s\" \n " , fileName , err .Error ())
0 commit comments