add bisect information and update man page

This commit is contained in:
Squibid 2026-03-06 12:05:52 -05:00
parent 6b7a176a70
commit 2377c041d9
Signed by: squibid
GPG key ID: BECE5684D3C4005D
3 changed files with 23 additions and 3 deletions

5
XD.1
View file

@ -26,6 +26,7 @@ tab(;) allbox;
c;l.
:;default
\;;in a git repo
=;in a git repo during a bisect
8;in a git repo with stashed changes
X;in a git repo during a merge
O;in a git repo during a rebase
@ -56,8 +57,8 @@ c;l.
returns the number that was passed in to allow the user to re-run the program
and get the same results. If there's an internal error
.Nm
returns 1. If you wish to find out more infomation about the error enable ERR
in the config.mk.
returns 1. If you wish to find out more infomation about the error pass in
-Derr at build time.
.Sh OPTIONS
.Ss -v
Print version information to stdout and exit.

View file

@ -114,6 +114,20 @@ pub fn inRebase(self: *Git) bool {
};
}
pub fn inBisect(self: *Git) bool {
const s = perf.s();
defer perf.e(s, @src());
const path = std.fs.path.join(self.allocator, &[_][]const u8{
std.mem.span(self.git_path.ptr),
"BISECT_LOG",
}) catch return false;
defer self.allocator.free(path);
std.fs.cwd().access(path, .{ .mode = .read_only }) catch return false;
return true;
}
pub fn hasStaged(self: *Git) bool {
const s = perf.s();
defer perf.e(s, @src());

View file

@ -59,7 +59,12 @@ pub fn main() u8 {
var git = if (config.git) try @import("Git.zig").init(allocator) orelse null;
defer if (config.git and git != null) git.?.deinit();
if (config.git and git != null) {
if (git.?.hasStashes()) {
if (git.?.inBisect()) {
face[@intFromEnum(FaceParts.eyes)] = .{
.symbol = '=',
.explanation = "The current git repo is bisecting.",
};
} else if (git.?.hasStashes()) {
face[@intFromEnum(FaceParts.eyes)] = .{
.symbol = '8',
.explanation = "The current git repo has stashed changes.",