X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-syncfs.c;h=66e5aaa4b3eb685aa60d6744239efe940f03b879;hb=4b46503646910df3617d4f2d44112eddf75d902b;hp=06e5d350458f7e032058e7dfb71d70925ea3b8a3;hpb=d5ff84259f72c22a206e9b9354ec1bfedea17531;p=zpackage diff --git a/zpm-syncfs.c b/zpm-syncfs.c index 06e5d35..66e5aaa 100644 --- a/zpm-syncfs.c +++ b/zpm-syncfs.c @@ -628,8 +628,21 @@ static int remove_files(void *f, int ncols, char **vals, char **cols) { return 0; } + errno = 0; + if (lstat(dest, &st) == -1) { - return seterror(conf,"can't stat"); + switch (errno) { + case ENOENT: + /* TODO chatter if verbose */ + break; + case ENOTEMPTY: /* fall through */ + case EEXIST: + /* TODO chatter, or possibly require */ + break; + default: + return seterror(conf, "can't stat %s: %s", dest, strerror(errno)); + } + return 0; } if (S_ISDIR(st.st_mode)) {