From 614670c7f7b4d3355c152c089ab2410eb0d08f5f Mon Sep 17 00:00:00 2001 From: pavlik_dev Date: Thu, 17 Oct 2024 16:00:31 +0300 Subject: [PATCH] Added support for no-mime users, but it'll be less accurate. --- devinfo.c | 52 --- fileinfo | Bin 72840 -> 0 bytes mime.c | 1183 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1183 insertions(+), 52 deletions(-) delete mode 100644 devinfo.c delete mode 100755 fileinfo create mode 100644 mime.c diff --git a/devinfo.c b/devinfo.c deleted file mode 100644 index 0035e4d..0000000 --- a/devinfo.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include -#include - - -void printdev (int argc, char *argv[]) { - blkid_probe pr = blkid_new_probe_from_filename(argv[1]); - if (!pr) { - err(1, "Failed to open %s", argv[1]); - } - - // Get number of partitions - blkid_partlist ls; - int nparts, i; - - ls = blkid_probe_get_partitions(pr); - nparts = blkid_partlist_numof_partitions(ls); - printf("Number of partitions:%d\n", nparts); - - if (nparts <= 0){ - printf("Please enter correct device name! e.g. \"/dev/sdc\"\n"); - return; - } - - // Get UUID, label and type - const char *uuid; - const char *label; - const char *type; - - for (i = 0; i < nparts; i++) { - char dev_name[20]; - - sprintf(dev_name, "%s%d", argv[1], (i+1)); - - pr = blkid_new_probe_from_filename(dev_name); - blkid_do_probe(pr); - - blkid_probe_lookup_value(pr, "UUID", &uuid, NULL); - - blkid_probe_lookup_value(pr, "LABEL", &label, NULL); - - blkid_probe_lookup_value(pr, "TYPE", &type, NULL); - - printf("Name=%s, UUID=%s, LABEL=%s, TYPE=%s\n", dev_name, uuid, label, type); - - } - - blkid_free_probe(pr); - - return; -} diff --git a/fileinfo b/fileinfo deleted file mode 100755 index 7426d30ea02886b1730c6fda886428941320aaa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72840 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 z 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