authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-03-02 17:14:46 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-03-02 17:14:46 -08:00
log3eaef7e2a11745988b686329a0d4aa756a686fa0
tree3bb84752951bc20dd6f29eb2ae48811611e3a654
parentf0ce2a12eb0b54ff59fa7d6ef1ef41e37e5cdc37

fix util.mkdir_all


1 files changed, 5 insertions(+), 4 deletions(-)

src/util/funcs.zig+5-4
...@@ -186,13 +186,14 @@ pub fn last(in: [][]const u8) ![]const u8 {...@@ -186,13 +186,14 @@ pub fn last(in: [][]const u8) ![]const u8 {
186}186}
187187
188pub fn mkdir_all(dpath: []const u8) anyerror!void {188pub fn mkdir_all(dpath: []const u8) anyerror!void {
189 if (dpath.len == 0) {
190 return;
191 }
189 const d = if (dpath[dpath.len-1] == std.fs.path.sep) dpath[0..dpath.len-1] else dpath;192 const d = if (dpath[dpath.len-1] == std.fs.path.sep) dpath[0..dpath.len-1] else dpath;
190 const ps = std.fs.path.sep_str;193 const ps = std.fs.path.sep_str;
191 const e = dpath[0..std.mem.lastIndexOf(u8, dpath, ps).?];194 if (std.mem.lastIndexOf(u8, d, ps)) |index| {
192 if (std.mem.indexOf(u8, e, ps)) |_| {} else {195 try mkdir_all(d[0..index]);
193 return;
194 }196 }
195 try mkdir_all(e);
196 if (!try does_folder_exist(d)) {197 if (!try does_folder_exist(d)) {
197 try std.fs.cwd().makeDir(d);198 try std.fs.cwd().makeDir(d);
198 }199 }