| /* See LICENSE file for copyright and license details. */ |
| #include <sys/stat.h> |
| |
| #include <errno.h> |
| #include <stdio.h> |
| #include <unistd.h> |
| |
| #include "../fs.h" |
| #include "../util.h" |
| |
| int rm_status = 0; |
| |
| void |
| rm(const char *path, struct stat *st, void *data, struct recursor *r) |
| { |
| if (!r->maxdepth && st && S_ISDIR(st->st_mode)) { |
| recurse(path, NULL, r); |
| |
| if (rmdir(path) < 0) { |
| if (!(r->flags & SILENT)) |
| weprintf("rmdir %s:", path); |
| if (!((r->flags & SILENT) && errno == ENOENT)) |
| rm_status = 1; |
| } |
| } else if (unlink(path) < 0) { |
| if (!(r->flags & SILENT)) |
| weprintf("unlink %s:", path); |
| if (!((r->flags & SILENT) && errno == ENOENT)) |
| rm_status = 1; |
| } |
| } |