From 3a93831e395b06c62d7eecd1fc8687928f015d84 Mon Sep 17 00:00:00 2001 From: Evan Boehs Date: Fri, 5 Jan 2024 10:36:26 -0500 Subject: [PATCH] Fix #1213 (create dir if needed for settings) --- src/config/edit.zig | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/config/edit.zig b/src/config/edit.zig index c673991df..a28cfc362 100644 --- a/src/config/edit.zig +++ b/src/config/edit.zig @@ -5,9 +5,23 @@ const internal_os = @import("../os/main.zig"); /// Open the configuration in the OS default editor according to the default /// paths the main config file could be in. pub fn open(alloc_gpa: Allocator) !void { + // default dir + const config_dir = try internal_os.xdg.config(alloc_gpa, .{ .subdir = "ghostty" }); // default location const config_path = try internal_os.xdg.config(alloc_gpa, .{ .subdir = "ghostty/config" }); - defer alloc_gpa.free(config_path); + + defer { + alloc_gpa.free(config_path); + alloc_gpa.free(config_dir); + } + + // Check if the directory exists, create it if it doesn't + _ = std.fs.makeDirAbsolute(config_dir) catch |err| { + switch (err) { + error.PathAlreadyExists => {}, + else => return err, + } + }; // Try to create file and go on if it already exists _ = std.fs.createFileAbsolute(