From f99071f1da44c23ef6d984c1f2d58e32f3a052ba Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Sat, 27 Mar 2021 11:36:47 +0100 Subject: [PATCH] riverctl: Print error messages instead of error traces for common user mistakes --- riverctl/main.zig | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/riverctl/main.zig b/riverctl/main.zig index 1f64233..9df4e4d 100644 --- a/riverctl/main.zig +++ b/riverctl/main.zig @@ -44,6 +44,35 @@ pub const Globals = struct { }; pub fn main() !void { + _main() catch |err| { + if (std.builtin.mode == .Debug) + return err; + + switch (err) { + error.RiverControlNotAdvertised => printErrorExit( + \\The Wayland server does not support river-control-unstable-v1. + \\Do your versions of river and riverctl match? + , .{}), + error.RiverStatusManagerNotAdvertised => printErrorExit( + \\The Wayland server does not support river-status-unstable-v1. + \\Do your versions of river and riverctl match? + , .{}), + error.RiverOptionsManagerNotAdvertised => printErrorExit( + \\The Wayland server does not support river-options-unstable-v1. + \\Do your versions of river and riverctl match? + , .{}), + error.SeatNotAdverstised => printErrorExit( + \\The Wayland server did not advertise any seat. + , .{}), + error.XdgOutputNotAdvertised => printErrorExit( + \\The Wayland server does not support xdg-output-unstable-v1. + , .{}), + else => return err, + } + }; +} + +fn _main() !void { const display = try wl.Display.connect(null); const registry = try display.getRegistry();