2018-08-30 23:45:41 +08:00
package copyurl
import (
2019-06-17 16:34:30 +08:00
"context"
2019-07-29 01:47:38 +08:00
"github.com/rclone/rclone/cmd"
2019-09-04 00:25:19 +08:00
"github.com/rclone/rclone/fs"
2019-07-29 01:47:38 +08:00
"github.com/rclone/rclone/fs/operations"
2018-08-30 23:45:41 +08:00
"github.com/spf13/cobra"
)
2019-09-04 00:25:19 +08:00
var (
autoFilename = false
)
2018-08-30 23:45:41 +08:00
func init ( ) {
2019-10-11 23:58:11 +08:00
cmd . Root . AddCommand ( commandDefinition )
commandDefinition . Flags ( ) . BoolVarP ( & autoFilename , "auto-filename" , "a" , autoFilename , "Get the file name from the url and use it for destination file path" )
2018-08-30 23:45:41 +08:00
}
2019-10-11 23:58:11 +08:00
var commandDefinition = & cobra . Command {
2018-08-30 23:45:41 +08:00
Use : "copyurl https://example.com dest:path" ,
Short : ` Copy url content to dest. ` ,
Long : `
Download urls content and copy it to destination
without saving it in tmp storage .
2019-09-04 00:25:19 +08:00
Setting -- auto - filename flag will cause retrieving file name from url and using it in destination path .
2018-08-30 23:45:41 +08:00
` ,
Run : func ( command * cobra . Command , args [ ] string ) {
cmd . CheckArgs ( 2 , 2 , command , args )
2019-09-04 00:25:19 +08:00
var dstFileName string
var fsdst fs . Fs
if autoFilename {
fsdst = cmd . NewFsDir ( args [ 1 : ] )
} else {
fsdst , dstFileName = cmd . NewFsDstFile ( args [ 1 : ] )
}
2018-08-30 23:45:41 +08:00
cmd . Run ( true , true , command , func ( ) error {
2019-09-04 00:25:19 +08:00
_ , err := operations . CopyURL ( context . Background ( ) , fsdst , dstFileName , args [ 0 ] , autoFilename )
2018-08-30 23:45:41 +08:00
return err
} )
} ,
}