mirror of
https://github.com/rclone/rclone.git
synced 2025-02-27 05:43:11 +08:00
cmd: implement logging for copy/copyto/move/moveto commands
This commit is contained in:
parent
b570f40d65
commit
3caffd2dd1
@ -3,23 +3,27 @@ package copy
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/rclone/rclone/cmd"
|
"github.com/rclone/rclone/cmd"
|
||||||
"github.com/rclone/rclone/fs/config/flags"
|
"github.com/rclone/rclone/fs/config/flags"
|
||||||
"github.com/rclone/rclone/fs/operations"
|
"github.com/rclone/rclone/fs/operations"
|
||||||
|
"github.com/rclone/rclone/fs/operations/operationsflags"
|
||||||
"github.com/rclone/rclone/fs/sync"
|
"github.com/rclone/rclone/fs/sync"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
createEmptySrcDirs = false
|
createEmptySrcDirs = false
|
||||||
|
loggerOpt = operations.LoggerOpt{}
|
||||||
|
loggerFlagsOpt = operationsflags.AddLoggerFlagsOptions{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cmd.Root.AddCommand(commandDefinition)
|
cmd.Root.AddCommand(commandDefinition)
|
||||||
cmdFlags := commandDefinition.Flags()
|
cmdFlags := commandDefinition.Flags()
|
||||||
flags.BoolVarP(cmdFlags, &createEmptySrcDirs, "create-empty-src-dirs", "", createEmptySrcDirs, "Create empty source dirs on destination after copy", "")
|
flags.BoolVarP(cmdFlags, &createEmptySrcDirs, "create-empty-src-dirs", "", createEmptySrcDirs, "Create empty source dirs on destination after copy", "")
|
||||||
|
operationsflags.AddLoggerFlags(cmdFlags, &loggerOpt, &loggerFlagsOpt)
|
||||||
|
loggerOpt.LoggerFn = operations.NewDefaultLoggerFn(&loggerOpt)
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandDefinition = &cobra.Command{
|
var commandDefinition = &cobra.Command{
|
||||||
@ -95,14 +99,24 @@ for more info.
|
|||||||
"groups": "Copy,Filter,Listing,Important",
|
"groups": "Copy,Filter,Listing,Important",
|
||||||
},
|
},
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
|
|
||||||
cmd.CheckArgs(2, 2, command, args)
|
cmd.CheckArgs(2, 2, command, args)
|
||||||
fsrc, srcFileName, fdst := cmd.NewFsSrcFileDst(args)
|
fsrc, srcFileName, fdst := cmd.NewFsSrcFileDst(args)
|
||||||
cmd.Run(true, true, command, func() error {
|
cmd.Run(true, true, command, func() error {
|
||||||
if srcFileName == "" {
|
ctx := context.Background()
|
||||||
return sync.CopyDir(context.Background(), fdst, fsrc, createEmptySrcDirs)
|
close, err := operationsflags.ConfigureLoggers(ctx, fdst, command, &loggerOpt, loggerFlagsOpt)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
return operations.CopyFile(context.Background(), fdst, fsrc, srcFileName, srcFileName)
|
defer close()
|
||||||
|
|
||||||
|
if loggerFlagsOpt.AnySet() {
|
||||||
|
ctx = operations.WithSyncLogger(ctx, loggerOpt)
|
||||||
|
}
|
||||||
|
|
||||||
|
if srcFileName == "" {
|
||||||
|
return sync.CopyDir(ctx, fdst, fsrc, createEmptySrcDirs)
|
||||||
|
}
|
||||||
|
return operations.CopyFile(ctx, fdst, fsrc, srcFileName, srcFileName)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package copyto
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/rclone/rclone/fs/operations/operationsflags"
|
||||||
|
|
||||||
"github.com/rclone/rclone/cmd"
|
"github.com/rclone/rclone/cmd"
|
||||||
"github.com/rclone/rclone/fs/operations"
|
"github.com/rclone/rclone/fs/operations"
|
||||||
@ -10,8 +11,16 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
loggerOpt = operations.LoggerOpt{}
|
||||||
|
loggerFlagsOpt = operationsflags.AddLoggerFlagsOptions{}
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cmd.Root.AddCommand(commandDefinition)
|
cmd.Root.AddCommand(commandDefinition)
|
||||||
|
cmdFlags := commandDefinition.Flags()
|
||||||
|
operationsflags.AddLoggerFlags(cmdFlags, &loggerOpt, &loggerFlagsOpt)
|
||||||
|
loggerOpt.LoggerFn = operations.NewDefaultLoggerFn(&loggerOpt)
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandDefinition = &cobra.Command{
|
var commandDefinition = &cobra.Command{
|
||||||
@ -53,10 +62,21 @@ the destination.
|
|||||||
cmd.CheckArgs(2, 2, command, args)
|
cmd.CheckArgs(2, 2, command, args)
|
||||||
fsrc, srcFileName, fdst, dstFileName := cmd.NewFsSrcDstFiles(args)
|
fsrc, srcFileName, fdst, dstFileName := cmd.NewFsSrcDstFiles(args)
|
||||||
cmd.Run(true, true, command, func() error {
|
cmd.Run(true, true, command, func() error {
|
||||||
if srcFileName == "" {
|
ctx := context.Background()
|
||||||
return sync.CopyDir(context.Background(), fdst, fsrc, false)
|
close, err := operationsflags.ConfigureLoggers(ctx, fdst, command, &loggerOpt, loggerFlagsOpt)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
return operations.CopyFile(context.Background(), fdst, fsrc, dstFileName, srcFileName)
|
defer close()
|
||||||
|
|
||||||
|
if loggerFlagsOpt.AnySet() {
|
||||||
|
ctx = operations.WithSyncLogger(ctx, loggerOpt)
|
||||||
|
}
|
||||||
|
|
||||||
|
if srcFileName == "" {
|
||||||
|
return sync.CopyDir(ctx, fdst, fsrc, false)
|
||||||
|
}
|
||||||
|
return operations.CopyFile(ctx, fdst, fsrc, dstFileName, srcFileName)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package move
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/rclone/rclone/fs/operations/operationsflags"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/rclone/rclone/cmd"
|
"github.com/rclone/rclone/cmd"
|
||||||
@ -16,6 +17,8 @@ import (
|
|||||||
var (
|
var (
|
||||||
deleteEmptySrcDirs = false
|
deleteEmptySrcDirs = false
|
||||||
createEmptySrcDirs = false
|
createEmptySrcDirs = false
|
||||||
|
loggerOpt = operations.LoggerOpt{}
|
||||||
|
loggerFlagsOpt = operationsflags.AddLoggerFlagsOptions{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -23,6 +26,8 @@ func init() {
|
|||||||
cmdFlags := commandDefinition.Flags()
|
cmdFlags := commandDefinition.Flags()
|
||||||
flags.BoolVarP(cmdFlags, &deleteEmptySrcDirs, "delete-empty-src-dirs", "", deleteEmptySrcDirs, "Delete empty source dirs after move", "")
|
flags.BoolVarP(cmdFlags, &deleteEmptySrcDirs, "delete-empty-src-dirs", "", deleteEmptySrcDirs, "Delete empty source dirs after move", "")
|
||||||
flags.BoolVarP(cmdFlags, &createEmptySrcDirs, "create-empty-src-dirs", "", createEmptySrcDirs, "Create empty source dirs on destination after move", "")
|
flags.BoolVarP(cmdFlags, &createEmptySrcDirs, "create-empty-src-dirs", "", createEmptySrcDirs, "Create empty source dirs on destination after move", "")
|
||||||
|
operationsflags.AddLoggerFlags(cmdFlags, &loggerOpt, &loggerFlagsOpt)
|
||||||
|
loggerOpt.LoggerFn = operations.NewDefaultLoggerFn(&loggerOpt)
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandDefinition = &cobra.Command{
|
var commandDefinition = &cobra.Command{
|
||||||
@ -75,6 +80,17 @@ for more info.
|
|||||||
cmd.CheckArgs(2, 2, command, args)
|
cmd.CheckArgs(2, 2, command, args)
|
||||||
fsrc, srcFileName, fdst := cmd.NewFsSrcFileDst(args)
|
fsrc, srcFileName, fdst := cmd.NewFsSrcFileDst(args)
|
||||||
cmd.Run(true, true, command, func() error {
|
cmd.Run(true, true, command, func() error {
|
||||||
|
ctx := context.Background()
|
||||||
|
close, err := operationsflags.ConfigureLoggers(ctx, fdst, command, &loggerOpt, loggerFlagsOpt)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer close()
|
||||||
|
|
||||||
|
if loggerFlagsOpt.AnySet() {
|
||||||
|
ctx = operations.WithSyncLogger(ctx, loggerOpt)
|
||||||
|
}
|
||||||
|
|
||||||
if srcFileName == "" {
|
if srcFileName == "" {
|
||||||
return sync.MoveDir(context.Background(), fdst, fsrc, deleteEmptySrcDirs, createEmptySrcDirs)
|
return sync.MoveDir(context.Background(), fdst, fsrc, deleteEmptySrcDirs, createEmptySrcDirs)
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package moveto
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/rclone/rclone/fs/operations/operationsflags"
|
||||||
|
|
||||||
"github.com/rclone/rclone/cmd"
|
"github.com/rclone/rclone/cmd"
|
||||||
"github.com/rclone/rclone/fs/operations"
|
"github.com/rclone/rclone/fs/operations"
|
||||||
@ -10,8 +11,16 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
loggerOpt = operations.LoggerOpt{}
|
||||||
|
loggerFlagsOpt = operationsflags.AddLoggerFlagsOptions{}
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cmd.Root.AddCommand(commandDefinition)
|
cmd.Root.AddCommand(commandDefinition)
|
||||||
|
cmdFlags := commandDefinition.Flags()
|
||||||
|
operationsflags.AddLoggerFlags(cmdFlags, &loggerOpt, &loggerFlagsOpt)
|
||||||
|
loggerOpt.LoggerFn = operations.NewDefaultLoggerFn(&loggerOpt)
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandDefinition = &cobra.Command{
|
var commandDefinition = &cobra.Command{
|
||||||
@ -57,10 +66,21 @@ successful transfer.
|
|||||||
fsrc, srcFileName, fdst, dstFileName := cmd.NewFsSrcDstFiles(args)
|
fsrc, srcFileName, fdst, dstFileName := cmd.NewFsSrcDstFiles(args)
|
||||||
|
|
||||||
cmd.Run(true, true, command, func() error {
|
cmd.Run(true, true, command, func() error {
|
||||||
if srcFileName == "" {
|
ctx := context.Background()
|
||||||
return sync.MoveDir(context.Background(), fdst, fsrc, false, false)
|
close, err := operationsflags.ConfigureLoggers(ctx, fdst, command, &loggerOpt, loggerFlagsOpt)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
return operations.MoveFile(context.Background(), fdst, fsrc, dstFileName, srcFileName)
|
defer close()
|
||||||
|
|
||||||
|
if loggerFlagsOpt.AnySet() {
|
||||||
|
ctx = operations.WithSyncLogger(ctx, loggerOpt)
|
||||||
|
}
|
||||||
|
|
||||||
|
if srcFileName == "" {
|
||||||
|
return sync.MoveDir(ctx, fdst, fsrc, false, false)
|
||||||
|
}
|
||||||
|
return operations.MoveFile(ctx, fdst, fsrc, dstFileName, srcFileName)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user