From 2a01fa9fa03db78b206f5a4428261b1c209f4904 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Fri, 15 Dec 2017 11:37:31 +0000 Subject: [PATCH] moveto,copyto: clarify error message if source doesn't exist - fixes #1022 --- cmd/cmd.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 5ca22b0ca..14e31312e 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -198,6 +198,8 @@ func NewFsSrcDstFiles(args []string) (fsrc fs.Fs, srcFileName string, fdst fs.Fs fsrc, srcFileName = newFsSrc(args[0]) // If copying a file... dstRemote := args[1] + // If file exists then srcFileName != "", however if the file + // doesn't exist then we assume it is a directory... if srcFileName != "" { dstRemote, dstFileName = fs.RemoteSplit(dstRemote) if dstRemote == "" { @@ -207,7 +209,16 @@ func NewFsSrcDstFiles(args []string) (fsrc fs.Fs, srcFileName string, fdst fs.Fs log.Fatalf("%q is a directory", args[1]) } } - fdst = newFsDst(dstRemote) + fdst, err := fs.NewFs(dstRemote) + switch err { + case fs.ErrorIsFile: + fs.Stats.Error(err) + log.Fatalf("Source doesn't exist or is a directory and destination is a file") + case nil: + default: + fs.Stats.Error(err) + log.Fatalf("Failed to create file system for destination %q: %v", dstRemote, err) + } fs.CalculateModifyWindow(fdst, fsrc) return }