[PATCH 2/7] whereis: add search scope listing option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mostly useful when debugging why the command does, or does not, work.

Signed-off-by: Sami Kerola <kerolasa@xxxxxx>
---
 misc-utils/whereis.1 | 11 ++++++++++-
 misc-utils/whereis.c | 28 ++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/misc-utils/whereis.1 b/misc-utils/whereis.1
index 86e6a39..9b33999 100644
--- a/misc-utils/whereis.1
+++ b/misc-utils/whereis.1
@@ -91,7 +91,16 @@ be used when any of the
 or
 .BR \-S
 options is used.
-
+.IP "\fB\-l"
+Output list of effective lookup paths the
+.B whereis
+is using.  When non of
+.BR \-B ,
+.BR \-M ,
+or
+.BR \-S
+is specified the option will out hard coded paths that the command was
+able to find on system.
 .SH EXAMPLE
 To find all files in
 .B /usr/bin
diff --git a/misc-utils/whereis.c b/misc-utils/whereis.c
index eeec976..f579e29 100644
--- a/misc-utils/whereis.c
+++ b/misc-utils/whereis.c
@@ -167,6 +167,7 @@ static void __attribute__((__noreturn__)) usage(FILE *out)
 		" -s         search only for sources\n"
 		" -S <dirs>  define sources lookup path\n"
 		" -u         search for unusual entries\n"
+		" -l         output effective lookup paths\n"
 		" -V         output version information and exit\n"
 		" -h         display this help and exit\n\n"), out);
 
@@ -387,6 +388,29 @@ static void lookup(char *argv, struct is_here *dirlist, int flags)
 	return;
 }
 
+static void list_search_dir(struct is_here *dirlist)
+{
+	while (dirlist) {
+		if (dirlist->path != NULL) {
+			switch (dirlist->type) {
+			case BIN_DIR:
+				printf("bin: ");
+				break;
+			case MAN_DIR:
+				printf("man: ");
+				break;
+			case SRC_DIR:
+				printf("src: ");
+				break;
+			default:
+				abort();
+			}
+			printf("%s\n", dirlist->path);
+		}
+		dirlist = dirlist->next;
+	}
+}
+
 int main(int argc, char **argv)
 {
 	struct is_here *dirlist;
@@ -456,6 +480,10 @@ int main(int argc, char **argv)
 						flags |= SRC_BIT;
 					continue;
 
+				case 'l':
+					list_search_dir(dirlist);
+					continue;
+
 				case 'V':
 					printf(UTIL_LINUX_VERSION);
 					return EXIT_SUCCESS;
-- 
1.8.2

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux