aboutsummaryrefslogtreecommitdiff
path: root/util-linux/findfs.c
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-02-18 21:08:49 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2008-02-18 21:08:49 +0000
commitde7684a309ad20c1b889d048d741cb1dd52245f7 (patch)
treeefae3387e1978cdd128ff2a922b734d0e9d0180f /util-linux/findfs.c
parent27dd495b98a6135554b1d839fefe436ba3c6ca71 (diff)
downloadbusybox-de7684a309ad20c1b889d048d741cb1dd52245f7.tar.gz
busybox-de7684a309ad20c1b889d048d741cb1dd52245f7.tar.bz2
support for mount by label (not yet tested)
Also adds findfs applet. Closes bug 1143.
Diffstat (limited to 'util-linux/findfs.c')
-rw-r--r--util-linux/findfs.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/util-linux/findfs.c b/util-linux/findfs.c
new file mode 100644
index 000000000..4f036425c
--- /dev/null
+++ b/util-linux/findfs.c
@@ -0,0 +1,38 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Support functions for mounting devices by label/uuid
+ *
+ * Copyright (C) 2006 by Jason Schoon <floydpink@gmail.com>
+ * Some portions cribbed from e2fsprogs, util-linux, dosfstools
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ */
+
+#include "libbb.h"
+#include "volume_id.h"
+
+int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int findfs_main(int argc, char **argv)
+{
+ char *tmp = NULL;
+
+ if (argc != 2)
+ bb_show_usage();
+
+ if (!strncmp(argv[1], "LABEL=", 6))
+ tmp = get_devname_from_label(argv[1] + 6);
+ else if (!strncmp(argv[1], "UUID=", 5))
+ tmp = get_devname_from_uuid(argv[1] + 5);
+ else if (!strncmp(argv[1], "/dev/", 5)) {
+ /* Just pass a device name right through. This might aid in some scripts
+ being able to call this unconditionally */
+ tmp = argv[1];
+ } else
+ bb_show_usage();
+
+ if (tmp) {
+ puts(tmp);
+ return 0;
+ }
+ return 1;
+}