From 16ec05c75bfbd3ef1f6523492829653dd72e6ae9 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 2 Jul 2024 12:21:40 +0200 Subject: [PATCH] feat: add force_terminate command --- src/main.zig | 4 ++-- src/tui/tui.zig | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main.zig b/src/main.zig index 085510a..b8c7012 100644 --- a/src/main.zig +++ b/src/main.zig @@ -237,7 +237,7 @@ pub fn main() anyerror!void { var final_exit_status: u8 = 0; var want_restart: bool = false; -fn print_exit_status(_: void, msg: []const u8) void { +pub fn print_exit_status(_: void, msg: []const u8) void { if (std.mem.eql(u8, msg, "normal")) { return; } else if (std.mem.eql(u8, msg, "restart")) { @@ -314,7 +314,7 @@ fn trace_to_file(m: thespian.message.c_buffer_type) callconv(.C) void { buffer.flush() catch {}; } -fn exit(status: u8) noreturn { +pub fn exit(status: u8) noreturn { if (builtin.os.tag == .linux) { // drain stdin so we don't leave junk at the next prompt _ = std.os.linux.syscall3(.ioctl, @as(usize, @bitCast(@as(isize, std.posix.STDIN_FILENO))), std.os.linux.T.CFLSH, 0); diff --git a/src/tui/tui.zig b/src/tui/tui.zig index 1e2481f..cf7eb97 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -514,6 +514,12 @@ const cmds = struct { try tp.self_pid().send("restart"); } + pub fn force_terminate(self: *Self, _: Ctx) Result { + self.deinit(); + root.print_exit_status({}, "FORCE TERMINATE"); + root.exit(99); + } + pub fn theme_next(self: *Self, _: Ctx) Result { self.theme = get_next_theme_by_name(self.theme.name); self.config.theme = self.theme.name;