blob: 5b64399ad3c405e68ae6f218ccb1859bfa1984a7 [file] [log] [blame]
Denis Vlasenkode7684a2008-02-18 21:08:49 +00001/* 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
14int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
15int findfs_main(int argc, char **argv)
16{
17 char *tmp = NULL;
18
19 if (argc != 2)
Denis Vlasenko53ce7f02008-02-19 11:29:46 +000020 bb_show_usage();
Denis Vlasenkode7684a2008-02-18 21:08:49 +000021
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
Denis Vlasenko53ce7f02008-02-19 11:29:46 +000028 being able to call this unconditionally */
Denis Vlasenkode7684a2008-02-18 21:08:49 +000029 tmp = argv[1];
30 } else
31 bb_show_usage();
Denis Vlasenko53ce7f02008-02-19 11:29:46 +000032
33 if (tmp) {
34 puts(tmp);
Denis Vlasenkode7684a2008-02-18 21:08:49 +000035 return 0;
36 }
37 return 1;
Denis Vlasenko53ce7f02008-02-19 11:29:46 +000038}