| ... | @@ -38,8 +38,24 @@ pub const ModFile = struct { | ... | @@ -38,8 +38,24 @@ pub const ModFile = struct { |
| 38 | const name = mapping.get("name").?.string; | 38 | const name = mapping.get("name").?.string; |
| 39 | const main = mapping.get_string("main"); | 39 | const main = mapping.get_string("main"); |
| 40 | | 40 | |
| | 41 | const dep_list = try dep_list_by_name(alloc, mapping, "dependencies"); |
| | 42 | |
| | 43 | return Self{ |
| | 44 | .alloc = alloc, |
| | 45 | .id = if (id.len == 0) try u.random_string(48) else id, |
| | 46 | .name = name, |
| | 47 | .main = main, |
| | 48 | .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"), |
| | 49 | .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"), |
| | 50 | .c_source_files = try mapping.get_string_array(alloc, "c_source_files"), |
| | 51 | .deps = dep_list.items, |
| | 52 | .yaml = mapping, |
| | 53 | }; |
| | 54 | } |
| | 55 | |
| | 56 | fn dep_list_by_name(alloc: *std.mem.Allocator, mapping: yaml.Mapping, prop: []const u8) !*std.ArrayList(u.Dep) { |
| 41 | const dep_list = &std.ArrayList(u.Dep).init(alloc); | 57 | const dep_list = &std.ArrayList(u.Dep).init(alloc); |
| 42 | if (mapping.get("dependencies")) |dep_seq| { | 58 | if (mapping.get(prop)) |dep_seq| { |
| 43 | if (dep_seq == .sequence) { | 59 | if (dep_seq == .sequence) { |
| 44 | for (dep_seq.sequence) |item| { | 60 | for (dep_seq.sequence) |item| { |
| 45 | var dtype: []const u8 = undefined; | 61 | var dtype: []const u8 = undefined; |
| ... | @@ -81,17 +97,6 @@ pub const ModFile = struct { | ... | @@ -81,17 +97,6 @@ pub const ModFile = struct { |
| 81 | } | 97 | } |
| 82 | } | 98 | } |
| 83 | } | 99 | } |
| 84 | | 100 | return dep_list; |
| 85 | return Self{ | | |
| 86 | .alloc = alloc, | | |
| 87 | .id = if (id.len == 0) try u.random_string(48) else id, | | |
| 88 | .name = name, | | |
| 89 | .main = main, | | |
| 90 | .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"), | | |
| 91 | .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"), | | |
| 92 | .c_source_files = try mapping.get_string_array(alloc, "c_source_files"), | | |
| 93 | .deps = dep_list.items, | | |
| 94 | .yaml = mapping, | | |
| 95 | }; | | |
| 96 | } | 101 | } |
| 97 | }; | 102 | }; |