From b4f90ecd3cacf7442e693548c13d79137ba1faa0 Mon Sep 17 00:00:00 2001 From: Rory Bradford Date: Tue, 11 Aug 2020 14:44:46 +0100 Subject: Add change root directory option Signed-off-by: Rory Bradford --- rf.1 | 5 +++++ rf.c | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/rf.1 b/rf.1 index b4eab3c..9f58417 100644 --- a/rf.1 +++ b/rf.1 @@ -5,6 +5,7 @@ rf \- a tiny and simple file finder .SH SYNOPSIS .SY rf +.OP \-d directory .OP \-lsvw .OP pattern ... @@ -14,6 +15,10 @@ substring) patterns, while respecting any ignore rules in \fBrfignore\fR files. .SH OPTIONS .TP +.BI \-d directory +Search from specified directory, otherwise defaults to current working directory. +. +.TP .BI \-l count Limit to specified matches count. . diff --git a/rf.c b/rf.c index bee1ea9..14acc9d 100644 --- a/rf.c +++ b/rf.c @@ -38,7 +38,8 @@ static void usage(char *error) { fprintf(stderr, "Error: %s\n\n", error); } - fprintf(stderr, "usage: %s [-lsvw] pattern ...\n", __progname); + fprintf( + stderr, "usage: %s [-d directory] [-lsvw] pattern ...\n", __progname); } static int is_child(char *dirname) { @@ -179,6 +180,10 @@ int main(int argc, char **argv) { while ((ch = getopt(argc, argv, "l:svw")) > -1) { switch (ch) { + case 'd': + root = optarg; + break; + case 'h': usage(NULL); exit(EXIT_SUCCESS); @@ -249,7 +254,7 @@ int main(int argc, char **argv) { patterns[i++] = argv[optind++]; } - if (recurse_find(patterns, &pattern_count, ".", &switches)) { + if (recurse_find(patterns, &pattern_count, root, &switches)) { /* finished early because we reached the limit */ }; -- cgit 1.4.1-2-gfad0