@@ -18,13 +18,16 @@ const example = `
18
18
kure card rm Sample
19
19
20
20
* Remove a directory
21
- kure card rm SampleDir/`
21
+ kure card rm SampleDir/
22
+
23
+ * Remove multiple cards
24
+ kure card rm Sample Sample2 Sample3`
22
25
23
26
// NewCmd returns the a new command.
24
27
func NewCmd (db * bolt.DB , r io.Reader ) * cobra.Command {
25
28
return & cobra.Command {
26
- Use : "rm <name >" ,
27
- Short : "Remove a card or directory " ,
29
+ Use : "rm <names >" ,
30
+ Short : "Remove cards or directories " ,
28
31
Example : example ,
29
32
Args : cmdutil .MustExist (db , cmdutil .Card , true ),
30
33
RunE : runRm (db , r ),
@@ -33,39 +36,33 @@ func NewCmd(db *bolt.DB, r io.Reader) *cobra.Command {
33
36
34
37
func runRm (db * bolt.DB , r io.Reader ) cmdutil.RunEFunc {
35
38
return func (cmd * cobra.Command , args []string ) error {
36
- name := strings .Join (args , " " )
37
- name = cmdutil .NormalizeName (name , true )
38
-
39
39
if ! terminal .Confirm (r , "Are you sure you want to proceed?" ) {
40
40
return nil
41
41
}
42
42
43
- // Remove single file
44
- if ! strings .HasSuffix (name , "/" ) {
45
- if err := card .Remove (db , name ); err != nil {
46
- return err
47
- }
43
+ names := make ([]string , 0 , len (args ))
44
+ for _ , name := range args {
45
+ name = cmdutil .NormalizeName (name , true )
48
46
49
- fmt . Printf ( " \n %q removed \n " , name )
50
- return nil
51
- }
52
-
53
- fmt . Printf ( "Removing %q directory... \n " , name )
47
+ if ! strings . HasSuffix ( name , "/" ) {
48
+ names = append ( names , name )
49
+ fmt . Println ( "Remove:" , name )
50
+ continue
51
+ }
54
52
55
- cards , err := card .ListNames (db )
56
- if err != nil {
57
- return err
58
- }
53
+ cards , err := card .ListNames (db )
54
+ if err != nil {
55
+ return err
56
+ }
59
57
60
- for _ , c := range cards {
61
- if strings .HasPrefix (c , name ) {
62
- if err := card . Remove ( db , c ); err != nil {
63
- return err
58
+ for _ , c := range cards {
59
+ if strings .HasPrefix (c , name ) {
60
+ names = append ( names , c )
61
+ fmt . Println ( "Remove:" , c )
64
62
}
65
- fmt .Println ("Remove:" , c )
66
63
}
67
64
}
68
65
69
- return nil
66
+ return card . Remove ( db , names ... )
70
67
}
71
68
}
0 commit comments