| ... | ... | @@ -110,28 +110,6 @@ pub fn getObjectContent(alloc: std.mem.Allocator, dir: nfs.Dir, obj: Id) !string |
| 110 | 110 | const t = tracer.trace(@src(), " {s}", .{obj}); |
| 111 | 111 | defer t.end(); |
| 112 | 112 | |
| 113 | | if (obj.len == 40) blk: { //sha1 object |
| 114 | | var sub_path: [49:0]u8 = "objects/00/00000000000000000000000000000000000000".*; |
| 115 | | @memcpy(sub_path[8..][0..2], obj[0..2]); |
| 116 | | @memcpy(sub_path[11..], obj[2..]); |
| 117 | | const objfile = dir.openFile(&sub_path, .{}) catch |err| switch (err) { |
| 118 | | error.ENOENT => break :blk, |
| 119 | | else => |e| return e, |
| 120 | | }; |
| 121 | | defer objfile.close(); |
| 122 | | var bufr = nio.BufferedReader(4096, nfs.File).init(objfile); |
| 123 | | var list = std.ArrayList(u8).init(alloc); |
| 124 | | defer list.deinit(); |
| 125 | | try list.ensureUnusedCapacity(512); |
| 126 | | try std.compress.flate.inflate.decompress(.zlib, bufr.anyReadable(), list.writer()); |
| 127 | | const header = list.items[0..std.mem.indexOfScalar(u8, list.items, 0).?]; |
| 128 | | const _type = header[0..std.mem.indexOfScalar(u8, header, ' ').?]; |
| 129 | | const content_len = try extras.parseDigits(u64, header[_type.len + 1 ..], 10); |
| 130 | | std.debug.assert(list.items[header.len + 1 ..].len == content_len); |
| 131 | | list.replaceRangeAssumeCapacity(0, header.len + 1, ""); |
| 132 | | return list.toOwnedSlice(); |
| 133 | | } |
| 134 | | |
| 135 | 113 | const result = try std.process.Child.run(.{ |
| 136 | 114 | .allocator = alloc, |
| 137 | 115 | .cwd_dir = dir.to_std(), |