tools: let debug-events take a device path

This is the most common use-case other than "all from udev", so let's just
parse a device path correctly without requiring --device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2018-10-31 15:52:25 +10:00
parent 5cd27b070e
commit 4e469291b1
6 changed files with 35 additions and 11 deletions

View file

@ -904,7 +904,7 @@ main(int argc, char **argv)
{ {
struct libinput *li; struct libinput *li;
struct timespec tp; struct timespec tp;
enum tools_backend backend = BACKEND_UDEV; enum tools_backend backend = BACKEND_NONE;
const char *seat_or_device = "seat0"; const char *seat_or_device = "seat0";
bool grab = false; bool grab = false;
bool verbose = false; bool verbose = false;
@ -981,8 +981,14 @@ main(int argc, char **argv)
} }
if (optind < argc) { if (optind < argc) {
usage(); if (optind < argc - 1 || backend != BACKEND_NONE) {
return EXIT_INVALID_USAGE; usage();
return EXIT_INVALID_USAGE;
}
backend = BACKEND_DEVICE;
seat_or_device = argv[optind];
} else if (backend == BACKEND_NONE) {
backend = BACKEND_UDEV;
} }
memset(&act, 0, sizeof(act)); memset(&act, 0, sizeof(act));

View file

@ -2,7 +2,11 @@
.SH NAME .SH NAME
libinput\-debug\-events \- debug helper for libinput libinput\-debug\-events \- debug helper for libinput
.SH SYNOPSIS .SH SYNOPSIS
.B libinput debug\-events [\-\-help] [\-\-show\-keycodes] [\-\-udev \fI<seat>\fB|\-\-device \fI/dev/input/event0\fB] \fI[configuration options]\fB .B libinput debug\-events \fI[options]\fB
.PP
.B libinput debug\-events \fI[options]\fB \-\-udev \fI<seat>\fB
.PP
.B libinput debug\-events \fI[options]\fB [\-\-device] \fI/dev/input/event0\fB
.SH DESCRIPTION .SH DESCRIPTION
.PP .PP
The The
@ -17,7 +21,8 @@ This tool usually needs to be run as root to have access to the
.SH OPTIONS .SH OPTIONS
.TP 8 .TP 8
.B \-\-device \fI/dev/input/event0\fR .B \-\-device \fI/dev/input/event0\fR
Use the given device with the path backend Use the given device with the path backend. The \fB\-\-device\fR argument may be
omitted.
.TP 8 .TP 8
.B \-\-grab .B \-\-grab
Exclusively grab all opened devices. This will prevent events from being Exclusively grab all opened devices. This will prevent events from being

View file

@ -916,7 +916,7 @@ sockets_init(struct libinput *li)
static void static void
usage(void) { usage(void) {
printf("Usage: libinput debug-gui [options] [--udev <seat>|--device /dev/input/event0]\n"); printf("Usage: libinput debug-gui [options] [--udev <seat>|[--device] /dev/input/event0]\n");
} }
static gboolean static gboolean
@ -933,7 +933,7 @@ main(int argc, char **argv)
struct window w = {0}; struct window w = {0};
struct tools_options options; struct tools_options options;
struct libinput *li; struct libinput *li;
enum tools_backend backend = BACKEND_UDEV; enum tools_backend backend = BACKEND_NONE;
const char *seat_or_device = "seat0"; const char *seat_or_device = "seat0";
bool verbose = false; bool verbose = false;
@ -999,8 +999,14 @@ main(int argc, char **argv)
} }
if (optind < argc) { if (optind < argc) {
usage(); if (optind < argc - 1 || backend != BACKEND_NONE) {
return EXIT_INVALID_USAGE; usage();
return EXIT_INVALID_USAGE;
}
backend = BACKEND_DEVICE;
seat_or_device = argv[optind];
} else if (backend == BACKEND_NONE) {
backend = BACKEND_UDEV;
} }
li = tools_open_backend(backend, seat_or_device, verbose, &w.grab); li = tools_open_backend(backend, seat_or_device, verbose, &w.grab);

View file

@ -2,7 +2,11 @@
.SH NAME .SH NAME
libinput\-debug\-gui \- visual debug helper for libinput libinput\-debug\-gui \- visual debug helper for libinput
.SH SYNOPSIS .SH SYNOPSIS
.B libinput debug\-gui [\-\-help] [\-\-udev \fI<seat>\fB|\-\-device \fI/dev/input/event0\fB] \fI[configuration options]\fB .B libinput debug\-gui \fI[options]\fB
.PP
.B libinput debug\-gui \fI[options]\fB \-\-udev \fI<seat>\fB
.PP
.B libinput debug\-gui \fI[options]\fB [\-\-device] \fI/dev/input/event0\fB
.SH DESCRIPTION .SH DESCRIPTION
.PP .PP
The The
@ -21,7 +25,8 @@ This tool usually needs to be run as root to have access to the
.SH OPTIONS .SH OPTIONS
.TP 8 .TP 8
.B \-\-device \fI/dev/input/event0\fR .B \-\-device \fI/dev/input/event0\fR
Use the given device with the path backend. Use the given device with the path backend. The \fB\-\-device\fR argument may be
omitted.
.TP 8 .TP 8
.B \-\-grab .B \-\-grab
Exclusively grab all opened devices. This will prevent events from being Exclusively grab all opened devices. This will prevent events from being

View file

@ -80,6 +80,7 @@ enum configuration_options {
{ "set-speed", required_argument, 0, OPT_SPEED } { "set-speed", required_argument, 0, OPT_SPEED }
enum tools_backend { enum tools_backend {
BACKEND_NONE,
BACKEND_DEVICE, BACKEND_DEVICE,
BACKEND_UDEV BACKEND_UDEV
}; };

View file

@ -135,6 +135,7 @@ class TestToolWithOptions(object):
self.run_command_missing_arg(['--device']) self.run_command_missing_arg(['--device'])
self.run_command_success(['--device', '/dev/input/event0']) self.run_command_success(['--device', '/dev/input/event0'])
self.run_command_success(['--device', '/dev/input/event1']) self.run_command_success(['--device', '/dev/input/event1'])
self.run_command_success(['/dev/input/event0'])
def test_options_pattern(self): def test_options_pattern(self):
for option in self.options['pattern']: for option in self.options['pattern']: