summary refs log tree commit diff
path: root/scrap/find.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scrap/find.c48
1 files changed, 0 insertions, 48 deletions
diff --git a/scrap/find.c b/scrap/find.c
deleted file mode 100644
index 92744b17..00000000
--- a/scrap/find.c
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <dirent.h>
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sysexits.h>
-
-static const char *path[1024];
-static size_t depth;
-
-static void traverse(int parent, const char *name) {
-	path[depth++] = name;
-
-	int fd = openat(parent, name, O_RDONLY);
-	if (fd < 0) err(EX_NOINPUT, "%s", name);
-
-	DIR *dir = fdopendir(fd);
-	if (!dir) err(EX_IOERR, "%s", name);
-
-	struct dirent *entry;
-	while (NULL != (entry = readdir(dir))) {
-		if (entry->d_namlen == 1 && entry->d_name[0] == '.') continue;
-		if (
-			entry->d_namlen == 2
-			&& entry->d_name[0] == '.'
-			&& entry->d_name[1] == '.'
-		) continue;
-
-		if (entry->d_type == DT_DIR) {
-			traverse(fd, entry->d_name);
-		}
-
-		for (size_t i = 0; i < depth; ++i) {
-			printf("%s/", path[i]);
-		}
-		printf("%s\n", entry->d_name);
-	}
-	// TODO: Check error.
-
-	closedir(dir);
-	depth--;
-}
-
-int main(int argc, char *argv[]) {
-	if (argc < 2) return EX_USAGE;
-	traverse(AT_FDCWD, argv[1]);
-	return EX_OK;
-}