|
|
@ -19,7 +19,6 @@ const std = @import("std");
|
|
19
|
19
|
// commands wishlist:
|
|
20
|
20
|
// - search (e.g. default current dir + /usr/include)
|
|
21
|
21
|
// - launch with logs (default launcher, use systemd-run --user --unit=name name?)
|
|
22
|
|
// - view (the above logs)
|
|
23
|
22
|
// - switch to window
|
|
24
|
23
|
// - open url
|
|
25
|
24
|
// - open shortcuts (logs -> ..., tickets)
|
|
|
@ -219,7 +218,7 @@ const RegexRunner = struct {
|
|
219
|
218
|
}
|
|
220
|
219
|
};
|
|
221
|
220
|
|
|
222
|
|
var cmd_buf: [100]u8 = undefined;
|
|
|
221
|
var cmd_buf: [1000]u8 = undefined;
|
|
223
|
222
|
|
|
224
|
223
|
const GoDocRunner = struct {
|
|
225
|
224
|
fn init() RegexRunner {
|
|
|
@ -312,6 +311,26 @@ const SearchRunner = struct {
|
|
312
|
311
|
}
|
|
313
|
312
|
};
|
|
314
|
313
|
|
|
|
314
|
const LogsRunner = struct {
|
|
|
315
|
fn init() RegexRunner {
|
|
|
316
|
return RegexRunner{ .name = "logs", .run_always = true, .toArgv = toArgv, .isActive = isActive };
|
|
|
317
|
}
|
|
|
318
|
|
|
|
319
|
fn isActive(cmd: []const u8) bool {
|
|
|
320
|
return std.mem.startsWith(u8, cmd, "logs");
|
|
|
321
|
}
|
|
|
322
|
|
|
|
323
|
fn toArgv(cmd: []const u8) []const []const u8 {
|
|
|
324
|
if (cmd.len <= "logs ".len) {
|
|
|
325
|
return &[_][]const u8{ "journalctl", "-b" };
|
|
|
326
|
}
|
|
|
327
|
|
|
|
328
|
const service = cmd["logs ".len..];
|
|
|
329
|
_ = std.fmt.bufPrint(&cmd_buf, "(systemctl status {s} &> /dev/null && journalctl -u {s} -f) || (systemctl status --user {s} &> /dev/null && journalctl --user -u {s} -f) || echo \"no logs for '{s}'\"", .{ service, service, service, service, service }) catch "???";
|
|
|
330
|
return &[_][]const u8{ "bash", "-c", &cmd_buf };
|
|
|
331
|
}
|
|
|
332
|
};
|
|
|
333
|
|
|
315
|
334
|
const QalcRunner = struct {
|
|
316
|
335
|
fn init() RegexRunner {
|
|
317
|
336
|
return RegexRunner{ .name = "qalc", .run_always = true, .toArgv = toArgv, .isActive = isActive };
|
|
|
@ -399,6 +418,7 @@ pub fn main() !void {
|
|
399
|
418
|
HelpRunner.init(),
|
|
400
|
419
|
ManPageRunner.init(),
|
|
401
|
420
|
SearchRunner.init(),
|
|
|
421
|
LogsRunner.init(),
|
|
402
|
422
|
QalcRunner.init(),
|
|
403
|
423
|
};
|
|
404
|
424
|
|