Initial public busybox upstream commit
[busybox4maemo] / 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 tarball for details.
9  */
10
11 #include "libbb.h"
12 #include "volume_id.h"
13
14 int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
15 int findfs_main(int argc, char **argv)
16 {
17         char *tmp = NULL;
18
19         if (argc != 2)
20                 bb_show_usage();
21
22         if (!strncmp(argv[1], "LABEL=", 6))
23                 tmp = get_devname_from_label(argv[1] + 6);
24         else if (!strncmp(argv[1], "UUID=", 5))
25                 tmp = get_devname_from_uuid(argv[1] + 5);
26         else if (!strncmp(argv[1], "/dev/", 5)) {
27                 /* Just pass a device name right through.  This might aid in some scripts
28                 being able to call this unconditionally */
29                 tmp = argv[1];
30         } else
31                 bb_show_usage();
32
33         if (tmp) {
34                 puts(tmp);
35                 return 0;
36         }
37         return 1;
38 }