/* * Copyright (C) 2009 Karel Zak <kzak@redhat.com> * * This file may be redistributed under the terms of the GNU Public * License. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <err.h> #include <blkid.h> #include "nls.h" const char *my_program_invocation_short_name; static void __attribute__((__noreturn__)) usage(int rc) { const char *p = my_program_invocation_short_name; if (!p) p = "findfs"; fprintf(stderr, _("Usage: %s LABEL=<label>|UUID=<uuid>\n"), p); exit(rc); } int main(int argc, char **argv) { char *dev, *tk, *vl; my_program_invocation_short_name = argv[0]; setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); if (argc != 2) /* we return '2' for backward compatibility * with version from e2fsprogs */ usage(2); if (!strncmp(argv[1], "LABEL=", 6)) { tk = "LABEL"; vl = argv[1] + 6; } else if (!strncmp(argv[1], "UUID=", 5)) { tk = "UUID"; vl = argv[1] + 5; } else if (!strcmp(argv[1], "-h") == 0 || !strcmp(argv[1], "--help") == 0) { usage(EXIT_SUCCESS); } else usage(2); dev = blkid_evaluate_tag(tk, vl, NULL); if (!dev) errx(EXIT_FAILURE, _("unable to resolve '%s'"), argv[1]); puts(dev); exit(EXIT_SUCCESS); }