1/* See LICENSE file for copyright and license details. */
2
3
4#include <libgen.h>
5#include <string.h>
6#include <unistd.h>
7
8#include "util.h"
9
10static void
11usage(void)
12{
13 eprintf("usage: %s [-p] dir ...\n", argv0);
14}
15
16// ?man rmdir: remove empty directories
17// ?man arguments: dir ...
18// ?man remove empty directories from the filesystem
19int
20main(int argc, char *argv[])
21{
22 int pflag = 0, ret = 0;
23 char *d;
24
25 ARGBEGIN {
26 // ?man -p: remove parent directories if they are also empty
27 case 'p':
28 pflag = 1;
29 break;
30 default:
31 usage();
32 } ARGEND
33
34 if (!argc)
35 usage();
36
37 for (; *argv; argc--, argv++) {
38 if (rmdir(*argv) < 0) {
39 weprintf("rmdir %s:", *argv);
40 ret = 1;
41 } else if (pflag) {
42 d = dirname(*argv);
43 for (; strcmp(d, "/") && strcmp(d, ".") ;) {
44 if (rmdir(d) < 0) {
45 weprintf("rmdir %s:", d);
46 ret = 1;
47 break;
48 }
49 d = dirname(d);
50 }
51 }
52 }
53
54 return ret;
55}