diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-15 11:54:18 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-15 11:54:18 +0200 |
commit | d1acfc3e0afbfd138247e9e93da69e5c94821623 (patch) | |
tree | fc16f1cb2dccc3ab68ffddb570370f888ac89439 | |
parent | ad1be3e7ad01b263312eaf2a06db0c24c9c90441 (diff) |
udevadm: info - add --export format to --device-id-of-file=
$ udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/
ROOT_MAJOR=8
ROOT_MINOR=5
-rw-r--r-- | udevinfo.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/udevinfo.c b/udevinfo.c index b8e97c4074..b9ee17c4f1 100644 --- a/udevinfo.c +++ b/udevinfo.c @@ -207,14 +207,22 @@ out: return rc; } -static int stat_device(const char *name) +static int stat_device(const char *name, int export, const char *prefix) { struct stat statbuf; if (stat(name, &statbuf) != 0) return -1; - printf("%d %d\n", major(statbuf.st_dev), minor(statbuf.st_dev)); + if (export) { + if (prefix == NULL) + prefix = "INFO_"; + printf("%sMAJOR=%d\n" + "%sMINOR=%d\n", + prefix, major(statbuf.st_dev), + prefix, minor(statbuf.st_dev)); + } else + printf("%d %d\n", major(statbuf.st_dev), minor(statbuf.st_dev)); return 0; } @@ -223,6 +231,8 @@ int udevinfo(int argc, char *argv[], char *envp[]) int option; struct udevice *udev; int root = 0; + int export = 0; + const char *export_prefix = NULL; static const struct option options[] = { { "name", 1, NULL, 'n' }, @@ -232,6 +242,8 @@ int udevinfo(int argc, char *argv[], char *envp[]) { "export-db", 0, NULL, 'e' }, { "root", 0, NULL, 'r' }, { "device-id-of-file", 1, NULL, 'd' }, + { "export", 0, NULL, 'x' }, + { "export-prefix", 1, NULL, 'P' }, { "version", 0, NULL, 1 }, /* -V outputs braindead format */ { "help", 0, NULL, 'h' }, {} @@ -270,7 +282,7 @@ int udevinfo(int argc, char *argv[], char *envp[]) } while (1) { - option = getopt_long(argc, argv, "aed:n:p:q:rVh", options, NULL); + option = getopt_long(argc, argv, "aed:n:p:q:rxPVh", options, NULL); if (option == -1) break; @@ -354,6 +366,12 @@ int udevinfo(int argc, char *argv[], char *envp[]) case 'e': export_db(); goto exit; + case 'x': + export = 1; + break; + case 'P': + export_prefix = optarg; + break; case 1: printf("%s\n", UDEV_VERSION); goto exit; @@ -462,7 +480,7 @@ int udevinfo(int argc, char *argv[], char *envp[]) } break; case ACTION_DEVICE_ID_FILE: - if (stat_device(name) != 0) + if (stat_device(name, export, export_prefix) != 0) rc = 6; break; case ACTION_ROOT: |