return 0;
}
+ errno = 0;
+
if (lstat(dest, &st) == -1) {
- return seterror(conf,"can't stat");
+ switch (errno) {
+ case ENOENT:
+ /* TODO chatter if verbose */
+ break;
+ default:
+ return seterror(conf, "can't stat %s: %s", dest, strerror(errno));
+ }
+ return 0;
}
if (S_ISDIR(st.st_mode)) {
case ENOENT:
break;
default:
- return seterror(conf, "can't unlink");
+ return seterror(conf, "can't unlink %s: %s", dest, strerror(errno));
}
}
fprintf(stderr, "file ops: %d\n", conf.ops_total);
if (conf.ops_remove > 0) {
if (conf.verbose) {
- fprintf(stderr, "removing %d files\n", conf.ops_remove);
+ fprintf(stderr, "removing %d file%s\n", conf.ops_remove, conf.ops_remove > 0 ? "s" : "");
}
conf.reverse = 1;
conf.ops_completed = 0;
if (conf.ops_update > 0) {
if (conf.verbose) {
- fprintf(stderr, "updating %d files\n", conf.ops_update);
+ fprintf(stderr, "updating %d file%s\n", conf.ops_update, conf.ops_update > 0 ? "s" : "");
}
conf.reverse = 0;
conf.ops_completed = 0;
if (conf.ops_install > 0) {
if (conf.verbose) {
- fprintf(stderr, "installing %d files\n", conf.ops_install);
+ fprintf(stderr, "installing %d file%s\n", conf.ops_install, conf.ops_install > 0 ? "s" : "");
}
conf.reverse = 0;
conf.ops_completed = 0;