december-adventure-2024/src/main.zig

46 lines
1.2 KiB
Zig
Raw Normal View History

const std = @import("std");
const builtin = @import("builtin");
const eql = @import("std").mem.eql;
const stdout = std.io.getStdOut().writer();
pub fn main() !void {
// Read the first argument to determine the subcommand
const allocator = std.heap.page_allocator;
var args = try std.process.argsWithAllocator(allocator);
defer args.deinit();
_ = args.next(); // Skip the first argument, which is the program name
const firstArg = args.next() orelse {
try stdout.print("No subcommand provided\n", .{});
return;
};
if (eql(u8, firstArg, "list")) {
try listEntries();
} else if (eql(u8, firstArg, "create")) {
try createNewEntry();
} else {
try stdout.print("Unknown subcommand: {s}\n", .{firstArg});
}
}
fn createNewEntry() !void {
// TODO
}
fn listEntries() !void {
const file = try std.fs.cwd().openFile("entries.log.gmi", .{});
defer file.close();
var bufReader = std.io.bufferedReader(file.reader());
var inStream = bufReader.reader();
var buf: [1024]u8 = undefined;
while (try inStream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
try stdout.print("{s}\n", .{ line });
}
}