()
| 263 | } |
| 264 | |
| 265 | func NewCopyCommand() *cli.Command { |
| 266 | cmd := &cli.Command{ |
| 267 | Name: "cp", |
| 268 | HelpName: "cp", |
| 269 | Usage: "copy objects", |
| 270 | Flags: NewCopyCommandFlags(), |
| 271 | CustomHelpTemplate: copyHelpTemplate, |
| 272 | Before: func(c *cli.Context) error { |
| 273 | err := validateCopyCommand(c) |
| 274 | if err != nil { |
| 275 | printError(commandFromContext(c), c.Command.Name, err) |
| 276 | } |
| 277 | return err |
| 278 | }, |
| 279 | Action: func(c *cli.Context) (err error) { |
| 280 | defer stat.Collect(c.Command.FullName(), &err)() |
| 281 | |
| 282 | // don't delete source |
| 283 | copy, err := NewCopy(c, false) |
| 284 | if err != nil { |
| 285 | return err |
| 286 | } |
| 287 | return copy.Run(c.Context) |
| 288 | }, |
| 289 | } |
| 290 | |
| 291 | cmd.BashComplete = getBashCompleteFn(cmd, false, false) |
| 292 | return cmd |
| 293 | } |
| 294 | |
| 295 | // Copy holds copy operation flags and states. |
| 296 | type Copy struct { |
no test coverage detected