| ... | @@ -9,18 +9,32 @@ const aq = @import("./../aq.zig"); | ... | @@ -9,18 +9,32 @@ const aq = @import("./../aq.zig"); |
| 9 | | 9 | |
| 10 | pub fn execute(args: [][]u8) !void { | 10 | pub fn execute(args: [][]u8) !void { |
| 11 | const pkg_id = args[0]; | 11 | const pkg_id = args[0]; |
| | 12 | _ = try do(std.fs.cwd(), pkg_id); |
| | 13 | std.log.info("Successfully added package {s}", .{pkg_id}); |
| | 14 | } |
| 12 | | 15 | |
| | 16 | pub fn do(dir: std.fs.Dir, pkg_id: []const u8) ![]const u8 { |
| 13 | const url = try std.mem.join(gpa, "/", &.{ aq.server_root, pkg_id }); | 17 | const url = try std.mem.join(gpa, "/", &.{ aq.server_root, pkg_id }); |
| 14 | const val = try aq.server_fetch(url); | 18 | const val = try aq.server_fetch(url); |
| 15 | | 19 | |
| 16 | const file = try std.fs.cwd().openFile("zig.mod", .{ .read = true, .write = true }); | 20 | const pkg_url = try std.fmt.allocPrint(gpa, "https://{s}/{s}", .{ |
| 17 | try file.seekTo(try file.getEndPos()); | | |
| 18 | | | |
| 19 | const file_w = file.writer(); | | |
| 20 | try file_w.print(" - src: git https://{s}/{s}\n", .{ | | |
| 21 | val.get(.{ "repo", "domain" }).?.String, | 21 | val.get(.{ "repo", "domain" }).?.String, |
| 22 | val.get(.{ "pkg", "remote_name" }).?.String, | 22 | val.get(.{ "pkg", "remote_name" }).?.String, |
| 23 | }); | 23 | }); |
| 24 | | 24 | |
| 25 | std.log.info("Successfully added package {s}", .{pkg_id}); | 25 | const m = try u.ModFile.from_dir(gpa, dir); |
| | 26 | for (m.devdeps) |d| { |
| | 27 | if (std.mem.eql(u8, d.path, pkg_url)) { |
| | 28 | return pkg_url; |
| | 29 | } |
| | 30 | } |
| | 31 | |
| | 32 | const file = try dir.openFile("zig.mod", .{ .read = true, .write = true }); |
| | 33 | defer file.close(); |
| | 34 | try file.seekTo(try file.getEndPos()); |
| | 35 | |
| | 36 | const file_w = file.writer(); |
| | 37 | try file_w.print(" - src: git {s}\n", .{pkg_url}); |
| | 38 | |
| | 39 | return pkg_url; |
| 26 | } | 40 | } |