aboutsummaryrefslogtreecommitdiff
path: root/util-linux/findfs.c
diff options
context:
space:
mode:
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;
+}