| ... | @@ -177,6 +177,26 @@ fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { | ... | @@ -177,6 +177,26 @@ fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { |
| 177 | try w.writeFile(file); | 177 | try w.writeFile(file); |
| 178 | try w.writeByteNTimes(0, padding); | 178 | try w.writeByteNTimes(0, padding); |
| 179 | } | 179 | } |
| | 180 | |
| | 181 | { |
| | 182 | // Since this command is JIT compiled, the builtin module available in |
| | 183 | // this source file corresponds to the user's host system. |
| | 184 | const builtin_zig = @embedFile("builtin"); |
| | 185 | |
| | 186 | var file_header = std.tar.output.Header.init(); |
| | 187 | file_header.typeflag = .regular; |
| | 188 | try file_header.setPath("builtin", "builtin.zig"); |
| | 189 | try file_header.setSize(builtin_zig.len); |
| | 190 | try file_header.updateChecksum(); |
| | 191 | try w.writeAll(std.mem.asBytes(&file_header)); |
| | 192 | try w.writeAll(builtin_zig); |
| | 193 | const padding = p: { |
| | 194 | const remainder = builtin_zig.len % 512; |
| | 195 | break :p if (remainder > 0) 512 - remainder else 0; |
| | 196 | }; |
| | 197 | try w.writeByteNTimes(0, padding); |
| | 198 | } |
| | 199 | |
| 180 | // intentionally omitting the pointless trailer | 200 | // intentionally omitting the pointless trailer |
| 181 | //try w.writeByteNTimes(0, 512 * 2); | 201 | //try w.writeByteNTimes(0, 512 * 2); |
| 182 | try response.end(); | 202 | try response.end(); |