From ea57504f22fcd8d92e3bb536c2f7bf874f771b4d Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 25 Aug 2021 00:26:24 -0700 Subject: [PATCH] cmd/init- add check for missing newline ending gitignore, fixes #28 --- src/cmd/init.zig | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/cmd/init.zig b/src/cmd/init.zig index 7fae6b395c406b9d98dde4326235d7555df8dbc3..03fde7b8467fc99dd265457d36ce6b91e8e2b391 100644 --- a/src/cmd/init.zig +++ b/src/cmd/init.zig @@ -79,11 +79,14 @@ pub fn execute(args: [][]u8) !void { const do = try inquirer.forConfirm(stdout, stdin, "It appears you're using git. Do you want init to add Zigmod to your .gitignore?", gpa); if (do) { const exists = try u.does_file_exist(".gitignore", null); - const file = try (if (exists) cwd.openFile(".gitignore", .{ .read = true, .write = true }) else cwd.createFile(".gitignore", .{})); + const file: std.fs.File = try (if (exists) cwd.openFile(".gitignore", .{ .read = true, .write = true }) else cwd.createFile(".gitignore", .{})); defer file.close(); - try file.seekTo(try file.getEndPos()); + const len = try file.getEndPos(); + if (len > 0) try file.seekTo(len - 1); const w = file.writer(); - + if (len > 0 and (try file.reader().readByte()) != '\n') { + try w.writeAll("\n"); + } if (!exists) try w.writeAll("zig-*\n"); try w.writeAll(".zigmod\n"); try w.writeAll("deps.zig\n"); -- 2.54.0