lens

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

environment.zig (1352B)


      1 const std = @import("std");
      2 
      3 pub fn getHomeDir(io: std.Io, env_map: *std.process.Environ.Map) !?std.Io.Dir {
      4     return try std.Io.Dir.openDirAbsolute(io, env_map.get("HOME") orelse {
      5         return null;
      6     }, .{ .iterate = true });
      7 }
      8 
      9 pub fn getXdgConfigHomeDir(io: std.Io, env_map: *std.process.Environ.Map) !?std.Io.Dir {
     10     return try std.Io.Dir.openDirAbsolute(io, env_map.get("XDG_CONFIG_HOME") orelse {
     11         return null;
     12     }, .{ .iterate = true });
     13 }
     14 
     15 pub fn fileExists(dir: std.Io.Dir, io: std.Io, path: []const u8) bool {
     16     const result = blk: {
     17         _ = dir.openFile(io, path, .{}) catch |err| {
     18             switch (err) {
     19                 error.FileNotFound => break :blk false,
     20                 else => {
     21                     std.log.info("{}", .{err});
     22                     break :blk true;
     23                 },
     24             }
     25         };
     26         break :blk true;
     27     };
     28     return result;
     29 }
     30 
     31 pub fn dirExists(dir: std.Io.Dir, io: std.Io, path: []const u8) bool {
     32     const result = blk: {
     33         _ = dir.openDir(io, path, .{}) catch |err| {
     34             switch (err) {
     35                 error.FileNotFound => break :blk false,
     36                 else => {
     37                     std.log.info("{}", .{err});
     38                     break :blk true;
     39                 },
     40             }
     41         };
     42         break :blk true;
     43     };
     44     return result;
     45 }