fix: CLI now properly rejects unknown commands
Some checks failed
Checkout test / test (push) Successful in 6s
CI with Native Libraries / Check Build Environment (push) Successful in 11s
CI/CD Pipeline / Test (push) Failing after 5m5s
CI/CD Pipeline / Dev Compose Smoke Test (push) Has been skipped
CI/CD Pipeline / Build (push) Has been skipped
CI/CD Pipeline / Test Scripts (push) Has been skipped
CI/CD Pipeline / Security Scan (push) Failing after 4m49s
Documentation / build-and-publish (push) Failing after 24s
CI with Native Libraries / Build and Test Native Libraries (push) Failing after 14m40s
CI with Native Libraries / Build Release Libraries (push) Has been skipped
CI/CD Pipeline / Docker Build (push) Has been skipped

- Add handleUnknownCommand() helper function
- Add else clauses to 'i' and 's' switch cases
- Commands like 'invalid_command', 'infoooo', 'syncccc' now properly rejected
- Prevents silent acceptance of invalid commands
- Test TestCLICommandsE2E/CLIErrorHandling now passes
This commit is contained in:
Jeremie Fraeys 2026-02-18 16:04:37 -05:00
parent d78a5e5d7f
commit a64233d4f6
No known key found for this signature in database

View file

@ -1,6 +1,13 @@
const std = @import("std");
const colors = @import("utils/colors.zig");
// Handle unknown command - prints error and exits
fn handleUnknownCommand(cmd: []const u8) noreturn {
colors.printError("Unknown command: {s}\n", .{cmd});
printUsage();
std.process.exit(1);
}
pub fn main() !void {
// Initialize colors based on environment
colors.initColors();
@ -31,7 +38,7 @@ pub fn main() !void {
colors.printInfo("Setup configuration interactively\n", .{});
} else if (std.mem.eql(u8, command, "info")) {
try @import("commands/info.zig").run(allocator, args[2..]);
},
} else handleUnknownCommand(command),
'a' => if (std.mem.eql(u8, command, "annotate")) {
try @import("commands/annotate.zig").run(allocator, args[2..]);
},
@ -46,7 +53,7 @@ pub fn main() !void {
colors.printInfo("Sync project to server: {s}\n", .{args[2]});
} else if (std.mem.eql(u8, command, "status")) {
try @import("commands/status.zig").run(allocator, args[2..]);
},
} else handleUnknownCommand(command),
'r' => if (std.mem.eql(u8, command, "requeue")) {
try @import("commands/requeue.zig").run(allocator, args[2..]);
},