mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-03 13:30:27 +01:00
tools: record: print a helpful error message when we don't have devices
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
fa73b3b307
commit
1272db297a
1 changed files with 15 additions and 2 deletions
|
|
@ -1841,6 +1841,8 @@ select_device(void)
|
|||
int ndev, selected_device;
|
||||
int rc;
|
||||
char *device_path;
|
||||
bool has_eaccess;
|
||||
int available_devices = 0;
|
||||
|
||||
ndev = scandir("/dev/input", &namelist, is_event_node, versionsort);
|
||||
if (ndev <= 0)
|
||||
|
|
@ -1857,8 +1859,11 @@ select_device(void)
|
|||
"/dev/input/%s",
|
||||
namelist[i]->d_name);
|
||||
fd = open(path, O_RDONLY);
|
||||
if (fd < 0)
|
||||
if (fd < 0) {
|
||||
if (errno == EACCES)
|
||||
has_eaccess = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
rc = libevdev_new_from_fd(fd, &device);
|
||||
close(fd);
|
||||
|
|
@ -1867,12 +1872,21 @@ select_device(void)
|
|||
|
||||
fprintf(stderr, "%s: %s\n", path, libevdev_get_name(device));
|
||||
libevdev_free(device);
|
||||
available_devices++;
|
||||
}
|
||||
|
||||
for (int i = 0; i < ndev; i++)
|
||||
free(namelist[i]);
|
||||
free(namelist);
|
||||
|
||||
if (available_devices == 0) {
|
||||
fprintf(stderr, "No devices available. ");
|
||||
if (has_eaccess)
|
||||
fprintf(stderr, "Please re-run as root.");
|
||||
fprintf(stderr, "\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Select the device event number: ");
|
||||
rc = scanf("%d", &selected_device);
|
||||
|
||||
|
|
@ -2425,7 +2439,6 @@ main(int argc, char **argv)
|
|||
|
||||
path = ndevices <= 0 ? select_device() : safe_strdup(argv[optind++]);
|
||||
if (path == NULL) {
|
||||
fprintf(stderr, "Invalid device path\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue