authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-08-20 22:04:09 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-08-20 22:04:09 -07:00
loged543fcb3734d152e3ee18b36b18d9ec15680944
treeb169610b7f684243e2502768a3e0b99c0c501118
parent07eca3ffcc1fd5977d1532233cbbd1b89173c3c2

cmd/aq/add- break into execute and do functions


1 files changed, 20 insertions(+), 6 deletions(-)

src/cmd/aquila/add.zig+20-6
......@@ -9,18 +9,32 @@ const aq = @import("./../aq.zig");
99
1010pub fn execute(args: [][]u8) !void {
1111 const pkg_id = args[0];
12 _ = try do(std.fs.cwd(), pkg_id);
13 std.log.info("Successfully added package {s}", .{pkg_id});
14}
1215
16pub fn do(dir: std.fs.Dir, pkg_id: []const u8) ![]const u8 {
1317 const url = try std.mem.join(gpa, "/", &.{ aq.server_root, pkg_id });
1418 const val = try aq.server_fetch(url);
1519
16 const file = try std.fs.cwd().openFile("zig.mod", .{ .read = true, .write = true });
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", .{
20 const pkg_url = try std.fmt.allocPrint(gpa, "https://{s}/{s}", .{
2121 val.get(.{ "repo", "domain" }).?.String,
2222 val.get(.{ "pkg", "remote_name" }).?.String,
2323 });
2424
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;
2640}