summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2008-07-15 11:54:18 +0200
committerKay Sievers <kay.sievers@vrfy.org>2008-07-15 11:54:18 +0200
commitd1acfc3e0afbfd138247e9e93da69e5c94821623 (patch)
treefc16f1cb2dccc3ab68ffddb570370f888ac89439
parentad1be3e7ad01b263312eaf2a06db0c24c9c90441 (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.c26
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: