Day 11: make things neat
Signed-off-by: Aaron Fischer <mail@aaron-fischer.net>
This commit is contained in:
parent
428a249ccc
commit
9f14073d61
2 changed files with 21 additions and 6 deletions
25
src/main.zig
25
src/main.zig
|
@ -40,7 +40,9 @@ pub fn main() !void {
|
|||
if (eql(u8, firstArg, "list")) {
|
||||
listEntries();
|
||||
} else if (eql(u8, firstArg, "create")) {
|
||||
try createNewEntry();
|
||||
createNewEntry() catch |err| {
|
||||
write(Target.Stderr, "error while creating new entry: {any}\n", .{err});
|
||||
};
|
||||
} else {
|
||||
write(Target.Stderr, "Unknown subcommand: {any}\n", .{firstArg});
|
||||
}
|
||||
|
@ -48,7 +50,12 @@ pub fn main() !void {
|
|||
|
||||
fn createNewEntry() !void {
|
||||
// Open the file in append mode
|
||||
const file = try std.fs.cwd().openFile("entries.log.gmi", .{ .mode = .read_write });
|
||||
const file = std.fs.cwd().openFile("entries.log.gmi", .{
|
||||
.mode = .read_write
|
||||
}) catch |err| {
|
||||
write(Target.Stderr, "unable to open file: {any}\n", .{err});
|
||||
return;
|
||||
};
|
||||
defer file.close();
|
||||
try file.seekFromEnd(0);
|
||||
|
||||
|
@ -65,13 +72,19 @@ fn createNewEntry() !void {
|
|||
|
||||
// Read the input content from STDIN and append it to the file
|
||||
var buf: [1024]u8 = undefined;
|
||||
while (try stdin.readUntilDelimiterOrEof(&buf, '\n')) |line| {
|
||||
try file.writeAll("\n");
|
||||
try file.writeAll(date);
|
||||
try file.writeAll(line);
|
||||
|
||||
try file.writeAll(date);
|
||||
|
||||
while (stdin.readUntilDelimiterOrEof(&buf, '\n')) |line| {
|
||||
try file.writeAll(line orelse break);
|
||||
try file.writeAll("\n");
|
||||
} else |err| {
|
||||
write(Target.Stderr, "error while reading from stdin: {any}\n", .{err});
|
||||
return;
|
||||
}
|
||||
|
||||
try file.writeAll("\n");
|
||||
|
||||
// Print some success message and the back link to STDOUT
|
||||
try stdout.print("Entry added successfully\n", .{});
|
||||
try stdout.print("=> / Back to the log entries", .{});
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# Server log
|
||||
|
||||
=> /create New entry
|
||||
|
||||
## 2024-12-04 23:34 UTC
|
||||
This is a simple entry, with multiple lines of text. This should showcase how this is intended.
|
||||
|
||||
|
|
Loading…
Reference in a new issue