aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/os/kernel_info.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/src/os/kernel_info.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/os/kernel_info.zig')
-rw-r--r--vendor/libghostty-vt/src/os/kernel_info.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/os/kernel_info.zig b/vendor/libghostty-vt/src/os/kernel_info.zig
new file mode 100644
index 00000000..e57cc304
--- /dev/null
+++ b/vendor/libghostty-vt/src/os/kernel_info.zig
@@ -0,0 +1,27 @@
+const std = @import("std");
+const builtin = @import("builtin");
+
+pub fn getKernelInfo(alloc: std.mem.Allocator) ?[]const u8 {
+ if (comptime builtin.os.tag != .linux) return null;
+ const path = "/proc/sys/kernel/osrelease";
+ var file = std.fs.openFileAbsolute(path, .{}) catch return null;
+ defer file.close();
+
+ // 128 bytes should be enough to hold the kernel information
+ const kernel_info = file.readToEndAlloc(alloc, 128) catch return null;
+ defer alloc.free(kernel_info);
+ return alloc.dupe(u8, std.mem.trim(u8, kernel_info, &std.ascii.whitespace)) catch return null;
+}
+
+test "read /proc/sys/kernel/osrelease" {
+ if (comptime builtin.os.tag != .linux) return null;
+ const allocator = std.testing.allocator;
+
+ const kernel_info = getKernelInfo(allocator).?;
+ defer allocator.free(kernel_info);
+
+ // Since we can't hardcode the info in tests, just check
+ // if something was read from the file
+ try std.testing.expect(kernel_info.len > 0);
+ try std.testing.expect(!std.mem.eql(u8, kernel_info, ""));
+}