Compare commits
2 commits
dafc69726f
...
e41f98b389
Author | SHA1 | Date | |
---|---|---|---|
e41f98b389 | |||
5ba3be2cc4 |
3 changed files with 24 additions and 5 deletions
|
@ -20,6 +20,11 @@ const MapShape = smt.MapShape;
|
||||||
// manifest file 21k currently, but unbounded
|
// manifest file 21k currently, but unbounded
|
||||||
var manifest_buf: [1024 * 32]u8 = undefined;
|
var manifest_buf: [1024 * 32]u8 = undefined;
|
||||||
|
|
||||||
|
const next_version_str = "0.16.0-dev.164+bc7955306";
|
||||||
|
const next_version = std.SemanticVersion.parse(next_version_str) catch unreachable;
|
||||||
|
const zig_version = @import("builtin").zig_version;
|
||||||
|
const is_next = zig_version.order(next_version) == .eq or zig_version.order(next_version) == .gt;
|
||||||
|
|
||||||
pub fn main() anyerror!void {
|
pub fn main() anyerror!void {
|
||||||
const root_progress_node = std.Progress.start(.{});
|
const root_progress_node = std.Progress.start(.{});
|
||||||
defer root_progress_node.end();
|
defer root_progress_node.end();
|
||||||
|
@ -114,8 +119,16 @@ fn processDirectories(models_dir: std.fs.Dir, output_dir: std.fs.Dir, parent_pro
|
||||||
try thread_pool.init(.{ .allocator = allocator });
|
try thread_pool.init(.{ .allocator = allocator });
|
||||||
defer thread_pool.deinit();
|
defer thread_pool.deinit();
|
||||||
|
|
||||||
const count, var calculated_manifest = try calculateDigests(models_dir, output_dir, &thread_pool);
|
const count, var calculated_manifest =
|
||||||
const output_stored_manifest = output_dir.readFileAlloc(allocator, "output_manifest.json", std.math.maxInt(usize)) catch null;
|
try calculateDigests(
|
||||||
|
models_dir,
|
||||||
|
output_dir,
|
||||||
|
&thread_pool,
|
||||||
|
);
|
||||||
|
const output_stored_manifest = if (is_next)
|
||||||
|
output_dir.readFileAlloc("output_manifest.json", allocator, .unlimited) catch null
|
||||||
|
else
|
||||||
|
output_dir.readFileAlloc(allocator, "output_manifest.json", std.math.maxInt(usize)) catch null;
|
||||||
if (output_stored_manifest) |o| {
|
if (output_stored_manifest) |o| {
|
||||||
// we have a stored manifest. Parse it and compare to our calculations
|
// we have a stored manifest. Parse it and compare to our calculations
|
||||||
// we can leak as we're using an arena allocator
|
// we can leak as we're using an arena allocator
|
||||||
|
@ -387,7 +400,10 @@ fn generateServices(
|
||||||
file: std.fs.File,
|
file: std.fs.File,
|
||||||
writer: *std.Io.Writer,
|
writer: *std.Io.Writer,
|
||||||
) ![][]const u8 {
|
) ![][]const u8 {
|
||||||
const json = try file.readToEndAlloc(allocator, 1024 * 1024 * 1024);
|
var fbuf: [1024]u8 = undefined;
|
||||||
|
var freader = file.reader(&fbuf);
|
||||||
|
var reader = &freader.interface;
|
||||||
|
const json = try reader.allocRemaining(allocator, .limited(1024 * 1024 * 1024));
|
||||||
defer allocator.free(json);
|
defer allocator.free(json);
|
||||||
const model = try smithy.parse(allocator, json);
|
const model = try smithy.parse(allocator, json);
|
||||||
defer model.deinit();
|
defer model.deinit();
|
||||||
|
|
|
@ -463,7 +463,10 @@ const PartialCredentials = struct {
|
||||||
};
|
};
|
||||||
fn credsForFile(allocator: std.mem.Allocator, file: ?std.fs.File, profile: []const u8) !PartialCredentials {
|
fn credsForFile(allocator: std.mem.Allocator, file: ?std.fs.File, profile: []const u8) !PartialCredentials {
|
||||||
if (file == null) return PartialCredentials{};
|
if (file == null) return PartialCredentials{};
|
||||||
const text = try file.?.readToEndAlloc(allocator, std.math.maxInt(usize));
|
var fbuf: [1024]u8 = undefined;
|
||||||
|
var freader = file.?.reader(&fbuf);
|
||||||
|
var reader = &freader.interface;
|
||||||
|
const text = try reader.allocRemaining(allocator, .unlimited);
|
||||||
defer allocator.free(text);
|
defer allocator.free(text);
|
||||||
const partial_creds = try credsForText(text, profile);
|
const partial_creds = try credsForText(text, profile);
|
||||||
var ak: ?[]const u8 = null;
|
var ak: ?[]const u8 = null;
|
||||||
|
|
|
@ -382,7 +382,7 @@ const TestSetup = struct {
|
||||||
self.request_actuals = acts;
|
self.request_actuals = acts;
|
||||||
return acts.request.*;
|
return acts.request.*;
|
||||||
}
|
}
|
||||||
fn sendBodyComplete(self_ptr: usize, body: []u8) std.io.Writer.Error!void {
|
fn sendBodyComplete(self_ptr: usize, body: []u8) std.Io.Writer.Error!void {
|
||||||
const self: *Self = @ptrFromInt(self_ptr);
|
const self: *Self = @ptrFromInt(self_ptr);
|
||||||
if (self.request_actuals == null) return error.WriteFailed; // invalid state - must be called after request
|
if (self.request_actuals == null) return error.WriteFailed; // invalid state - must be called after request
|
||||||
self.request_actuals.?.body = self.allocator.dupe(u8, body) catch return error.WriteFailed;
|
self.request_actuals.?.body = self.allocator.dupe(u8, body) catch return error.WriteFailed;
|
||||||
|
|
Loading…
Add table
Reference in a new issue