[PATCH v2] copy-in: error out early if the localpath does not exist
--- src/copy-in-out.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/copy-in-out.c b/src/copy-in-out.c index d5e7fb0..89344d8 100644 --- a/src/copy-in-out.c +++ b/src/copy-in-out.c @@ -46,6 +46,12 @@ guestfs_impl_copy_in (guestfs_h *g, size_t buf_len = strlen (localpath) + 1; char buf[buf_len]; const char *dirname, *basename; + struct stat statbuf; + + if (stat (localpath, &statbuf) == -1) { + error (g, _("source '%s' does not exist (or cannot be read)"), localpath); + return -1; + } int remote_is_dir = guestfs_is_dir (g, remotedir); if (remote_is_dir == -1) -- 2.1.0
On Wed, Sep 30, 2015 at 10:38:57AM +0200, Pino Toscano wrote:
--- src/copy-in-out.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/copy-in-out.c b/src/copy-in-out.c index d5e7fb0..89344d8 100644 --- a/src/copy-in-out.c +++ b/src/copy-in-out.c @@ -46,6 +46,12 @@ guestfs_impl_copy_in (guestfs_h *g, size_t buf_len = strlen (localpath) + 1; char buf[buf_len]; const char *dirname, *basename; + struct stat statbuf; + + if (stat (localpath, &statbuf) == -1) { + error (g, _("source '%s' does not exist (or cannot be read)"), localpath); + return -1; + }
int remote_is_dir = guestfs_is_dir (g, remotedir); if (remote_is_dir == -1) -- 2.1.0
ACK, probably. The current message isn't too bad: $ ./run guestfish -N fs -m /dev/sda1 copy-in /tmp/foobar / libguestfs: error: tar subprocess failed: tar: foobar: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
participants (2)
-
Pino Toscano -
Richard W.M. Jones