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