8000 cmd: deletefile command - fixes #2286 · devdevmac/rclone@d7ac4ca · GitHub
[go: up one dir, main page]

Skip to content

Commit d7ac4ca

Browse files
qaskaincw
authored andcommitted
cmd: deletefile command - fixes rclone#2286
1 parent 1053d7e commit d7ac4ca

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

cmd/all/all.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
_ "github.com/ncw/rclone/cmd/dbhashsum"
2020
_ "github.com/ncw/rclone/cmd/dedupe"
2121
_ "github.com/ncw/rclone/cmd/delete"
22+
_ "github.com/ncw/rclone/cmd/deletefile"
2223
_ "github.com/ncw/rclone/cmd/genautocomplete"
2324
_ "github.com/ncw/rclone/cmd/gendocs"
2425
_ "github.com/ncw/rclone/cmd/hashsum"

cmd/deletefile/deletefile.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package deletefile
2+
3+
import (
4+
"github.com/ncw/rclone/cmd"
5+
"github.com/ncw/rclone/fs/operations"
6+
7+
"github.com/pkg/errors"
8+
"github.com/spf13/cobra"
9+
)
10+
11+
func init() {
12+
cmd.Root.AddCommand(commandDefintion)
13+
}
14+
15+
var commandDefintion = &cobra.Command{
16+
Use: "deletefile remote:path",
17+
Short: `Remove a single file path from remote.`,
18+
Long: `
19+
Remove a single file path from remote. Unlike ` + "`" + `delete` + "`" + ` it cannot be used to
20+
remove a directory and it doesn't obey include/exclude filters - if the specified file exists,
21+
it will always be removed.
22+
`,
23+
Run: func(command *cobra.Command, args []string) {
24+
cmd.CheckArgs(1, 1, command, args)
25+
fs, fileName := cmd.NewFsFile(args[0])
26+
cmd.Run(true, false, command, func() error {
27+
if fileName == "" {
28+
return errors.Errorf("%s is a directory or doesn't exist", args[0])
29+
}
30+
fileObj, err := fs.NewObject(fileName)
31+
if err != nil {
32+
return err
33+
}
34+
return operations.DeleteFile(fileObj)
35+
})
36+
},
37+
}

0 commit comments

Comments
 (0)
0