config: trim/improve item names and help texts, take 2
[oweals/busybox.git] / util-linux / findfs.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Support functions for mounting devices by label/uuid
4  *
5  * Copyright (C) 2006 by Jason Schoon <floydpink@gmail.com>
6  * Some portions cribbed from e2fsprogs, util-linux, dosfstools
7  *
8  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
9  */
10 //config:config FINDFS
11 //config:       bool "findfs (11 kb)"
12 //config:       default y
13 //config:       select PLATFORM_LINUX
14 //config:       select VOLUMEID
15 //config:       help
16 //config:       Prints the name of a filesystem with given label or UUID.
17
18 /* Benefits from suid root: better access to /dev/BLOCKDEVs: */
19 //applet:IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE))
20
21 //kbuild:lib-$(CONFIG_FINDFS) += findfs.o
22
23 //usage:#define findfs_trivial_usage
24 //usage:       "LABEL=label or UUID=uuid"
25 //usage:#define findfs_full_usage "\n\n"
26 //usage:       "Find a filesystem device based on a label or UUID"
27 //usage:
28 //usage:#define findfs_example_usage
29 //usage:       "$ findfs LABEL=MyDevice"
30
31 #include "libbb.h"
32 #include "volume_id.h"
33
34 int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
35 int findfs_main(int argc UNUSED_PARAM, char **argv)
36 {
37         char *dev = *++argv;
38
39         if (!dev)
40                 bb_show_usage();
41
42         if (is_prefixed_with(dev, "/dev/")) {
43                 /* Just pass any /dev/xxx name right through.
44                  * This might aid in some scripts being able
45                  * to call this unconditionally */
46                 dev = NULL;
47         } else {
48                 /* Otherwise, handle LABEL=xxx and UUID=xxx,
49                  * fail on anything else */
50                 if (!resolve_mount_spec(argv))
51                         bb_show_usage();
52         }
53
54         if (*argv != dev) {
55                 puts(*argv);
56                 return 0;
57         }
58         return 1;
59 }