summaryrefslogtreecommitdiffstats
path: root/disk-utils/partx.c
diff options
context:
space:
mode:
authorSami Kerola2017-04-13 19:09:23 +0200
committerSami Kerola2017-05-03 00:22:04 +0200
commit2cdaf94b55bd862fc01c76f0e8cb39e68d8f89f9 (patch)
treeb80988da4fa694e393ce3642844fcede0a5fb14f /disk-utils/partx.c
parentlibblkid: add blkid_partitions_get_name() (diff)
downloadkernel-qcow2-util-linux-2cdaf94b55bd862fc01c76f0e8cb39e68d8f89f9.tar.gz
kernel-qcow2-util-linux-2cdaf94b55bd862fc01c76f0e8cb39e68d8f89f9.tar.xz
kernel-qcow2-util-linux-2cdaf94b55bd862fc01c76f0e8cb39e68d8f89f9.zip
partx: add --list-types option
Use libblkid as the source of truth what partition type names exist, and are supported. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'disk-utils/partx.c')
-rw-r--r--disk-utils/partx.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/disk-utils/partx.c b/disk-utils/partx.c
index a0e337b78..cc00b24bc 100644
--- a/disk-utils/partx.c
+++ b/disk-utils/partx.c
@@ -767,7 +767,8 @@ static void __attribute__((__noreturn__)) usage(FILE *out)
fputs(_(" -P, --pairs use key=\"value\" output format\n"), out);
fputs(_(" -r, --raw use raw output format\n"), out);
fputs(_(" -S, --sector-size <num> overwrite sector size\n"), out);
- fputs(_(" -t, --type <type> specify the partition type (dos, bsd, solaris, etc.)\n"), out);
+ fputs(_(" -t, --type <type> specify the partition type\n"), out);
+ fputs(_(" --list-types list supported partition types and exit\n"), out);
fputs(_(" -v, --verbose verbose mode\n"), out);
fputs(USAGE_SEPARATOR, out);
@@ -795,6 +796,9 @@ int main(int argc, char **argv)
dev_t disk_devno = 0, part_devno = 0;
unsigned int sector_size = 0;
+ enum {
+ OPT_LIST_TYPES = CHAR_MAX + 1
+ };
static const struct option long_opts[] = {
{ "bytes", no_argument, NULL, 'b' },
{ "noheadings", no_argument, NULL, 'g' },
@@ -805,6 +809,7 @@ int main(int argc, char **argv)
{ "delete", no_argument, NULL, 'd' },
{ "update", no_argument, NULL, 'u' },
{ "type", required_argument, NULL, 't' },
+ { "list-types", no_argument, NULL, OPT_LIST_TYPES },
{ "nr", required_argument, NULL, 'n' },
{ "output", required_argument, NULL, 'o' },
{ "pairs", no_argument, NULL, 'P' },
@@ -877,6 +882,15 @@ int main(int argc, char **argv)
case 'v':
verbose = 1;
break;
+ case OPT_LIST_TYPES:
+ {
+ size_t idx = 0;
+ const char *name = NULL;
+
+ while (blkid_partitions_get_name(idx++, &name) == 0)
+ puts(name);
+ return EXIT_SUCCESS;
+ }
case 'h':
usage(stdout);
case 'V':