aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/walk/walk.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cmd/walk/walk.c')
-rw-r--r--sys/cmd/walk/walk.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/sys/cmd/walk/walk.c b/sys/cmd/walk/walk.c
deleted file mode 100644
index c68d6e0..0000000
--- a/sys/cmd/walk/walk.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <u.h>
-#include <base.h>
-
-static char buf[4*1024], *c = buf; /* should be greater or equal to PATH_MAX */
-
-static
-void
-flush(void)
-{
- *c = 0;
- puts(buf);
- c = buf;
-}
-
-static
-int
-print(void *data, char *rel, char *abs, io·Stat *info)
-{
-copy:
- while (*abs && c < (arrend(buf)-2))
- *c++ = *abs++;
-
- if (*abs) {
- flush();
- goto copy;
- }
- *c++ = '\n';
-
- return 0;
-}
-
-static
-void
-usage(void)
-{
- fprintf(stderr, "usage: walk [-dlpv] file ...\n");
- exit(1);
-}
-
-int
-main(int argc, char *argv[])
-{
- int i, f = fs·nolinks, err, max = 0;
- char *p;
- static fs·Walker walker;
-
- ARGBEGIN{
- case 'd':
- max = atoi(ARGF());
- break;
- case 'l':
- f ^= fs·nolinks;
- break;
- case 'p':
- f |= fs·preorder;
- break;
- case 'v':
- f |= fs·verbose;
- break;
- default:
- usage();
- }ARGEND;
-
- walker.flags = f;
- walker.func = print;
- walker.data = nil;
- walker.max = max;
-
- if (argc == 0) {
- fs·init(&walker, "");
- fs·walk(&walker);
- return(err = walker.err);
- } else {
- err = 0;
- for (i=0; i<argc; i++) {
- fs·init(&walker, argv[i]);
- fs·walk(&walker);
- err += walker.err;
- }
- }
- fs·fini(&walker);
- flush();
- exit(err);
-}