diff options
Diffstat (limited to 'src/config.zig')
| -rw-r--r-- | src/config.zig | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/config.zig b/src/config.zig deleted file mode 100644 index 02d3c8a..0000000 --- a/src/config.zig +++ /dev/null @@ -1,41 +0,0 @@ -const std = @import("std"); - -const Self = @This(); - -const Config = struct { - storage_path: []const u8, - session_expires_after: usize, -}; - -arena: *std.heap.ArenaAllocator, -storage_path: []const u8, -session_expires_after: usize, - -pub fn load(allocator: std.mem.Allocator) !Self { - const home_path = std.posix.getenv("HOME") orelse return error.MissingHome; - const home = try std.fs.cwd().openDirZ( - home_path, - .{}, - ); - const file = home.openFile( - ".config/memora/config.json", - .{} - ) catch return error.MissingConfig; - - const content = try file.readToEndAlloc(allocator, std.math.maxInt(usize)); - defer allocator.free(content); - - const parsed = try std.json.parseFromSlice(Config, allocator, content, .{ - .allocate = .alloc_always, - }); - return .{ - .arena = parsed.arena, - .storage_path = parsed.value.storage_path, - .session_expires_after = parsed.value.session_expires_after * std.time.ns_per_day, - }; -} - -pub fn deinit(self: *Self) void { - self.arena.deinit(); - self.* = undefined; -} |