lens

posix system fetch tool
git clone git://brookjeynes.dev/bjeynes/lens.git
Log | Files | Refs | README

commit 84afd1768c94adc771cf9be15fbc5a19e76c65ae
parent ba1a6566f871342e3f1f43076b0763bbe6643e1e
Author: brookjeynes <me@brookjeynes.dev>
Date:   Sun, 17 May 2026 16:25:52 +1000

refactor: simplify config reading logic

Signed-off-by: brookjeynes <me@brookjeynes.dev>

Diffstat:
Mbuild.zig | 18+++++++++++++++---
Msrc/main.zig | 42++++++++++++++----------------------------
2 files changed, 29 insertions(+), 31 deletions(-)

diff --git a/build.zig b/build.zig @@ -7,8 +7,16 @@ const release_targets: []const std.Target.Query = &.{ .{ .cpu_arch = .x86_64, .os_tag = .macos }, }; -fn createExe(b: *std.Build, exe_name: []const u8, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) !*std.Build.Step.Compile { - const ziggy = b.dependency("ziggy", .{ .target = target, .optimize = optimize }).module("ziggy"); +fn createExe( + b: *std.Build, + exe_name: []const u8, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) !*std.Build.Step.Compile { + const ziggy = b.dependency("ziggy", .{ + .target = target, + .optimize = optimize, + }).module("ziggy"); const exe = b.addExecutable(.{ .name = exe_name, @@ -28,7 +36,11 @@ pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - const build_all = b.option(bool, "all-targets", "Build all targets in ReleaseSafe mode.") orelse false; + const build_all = b.option( + bool, + "all-targets", + "Build all targets in ReleaseSafe mode.", + ) orelse false; if (build_all) { try build_targets(b); return; diff --git a/src/main.zig b/src/main.zig @@ -58,43 +58,29 @@ pub fn main(init: std.process.Init) !void { // Read config const config = lbl: { var config_dir = dir: { - if (try environment.getXdgConfigHomeDir(io, init.environ_map)) |home_dir| { - defer { - var dir = home_dir; - dir.close(io); + var dir_env: struct { dir: std.Io.Dir, name: []const u8 } = env: { + if (try environment.getXdgConfigHomeDir(io, init.environ_map)) |home_dir| { + break :env .{ .dir = home_dir, .name = XDG_CONFIG_HOME_DIR_NAME }; } - if (!environment.dirExists(home_dir, io, XDG_CONFIG_HOME_DIR_NAME)) { - break :lbl default_config; + if (try environment.getHomeDir(io, init.environ_map)) |home_dir| { + break :env .{ .dir = home_dir, .name = HOME_DIR_NAME }; } - const dir = try home_dir.openDir(io, XDG_CONFIG_HOME_DIR_NAME, .{ .iterate = true }); - if (!environment.fileExists(dir, io, CONFIG_NAME)) { - break :lbl default_config; - } + break :lbl default_config; + }; + defer dir_env.dir.close(io); - break :dir dir; + if (!environment.dirExists(dir_env.dir, io, dir_env.name)) { + break :lbl default_config; } - if (try environment.getHomeDir(io, init.environ_map)) |home_dir| { - defer { - var dir = home_dir; - dir.close(io); - } - - if (!environment.dirExists(home_dir, io, HOME_DIR_NAME)) { - break :lbl default_config; - } - - const dir = try home_dir.openDir(io, HOME_DIR_NAME, .{ .iterate = true }); - if (!environment.fileExists(dir, io, CONFIG_NAME)) { - break :lbl default_config; - } - - break :dir dir; + const dir = try dir_env.dir.openDir(io, dir_env.name, .{ .iterate = true }); + if (!environment.fileExists(dir, io, CONFIG_NAME)) { + break :lbl default_config; } - break :lbl default_config; + break :dir dir; }; const contents = config_dir.readFileAlloc(io, CONFIG_NAME, allocator, .limited(4096)) catch break :lbl default_config;