From bcdb68005ebf31399be9acf6b6897180d4efcaaf Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 2 May 2021 23:10:22 -0700 Subject: [PATCH] move server fetch into aq command --- src/cmd/aq.zig | 26 ++++++++++++++++++++++++++ src/cmd/aquila/add.zig | 22 +--------------------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/cmd/aq.zig b/src/cmd/aq.zig index a51c2ae7ab442e399fd799b0a8accfa12e1270b4..5483e58383d8c53a97d75640a47303b51f4dcc00 100644 --- a/src/cmd/aq.zig +++ b/src/cmd/aq.zig @@ -1,6 +1,9 @@ const std = @import("std"); const gpa = std.heap.c_allocator; +const zfetch = @import("zfetch"); +const json = @import("json"); + const u = @import("./../util/index.zig"); // @@ -21,6 +24,8 @@ pub fn execute(args: [][]u8) !void { \\ \\The subcommands available are: \\ - add Append this package to your dependencies + \\ - update Check your zig.mod dependencies for new versions + \\ - modile Print the zig.mod text for a new version }); return; } @@ -34,3 +39,24 @@ pub fn execute(args: [][]u8) !void { } std.debug.panic("error: unknown command \"{s}\" for \"zigmod aq\"", .{args[0]}); } + +pub fn server_fetch(url: []const u8) !json.Value { + const req = try zfetch.Request.init(gpa, url, null); + defer req.deinit(); + + var headers = zfetch.Headers.init(gpa); + defer headers.deinit(); + try headers.set("accept", "application/json"); + + try req.do(.GET, headers, null); + + const r = req.reader(); + const body_content = try r.readAllAlloc(gpa, std.math.maxInt(usize)); + const val = try json.parse(gpa, body_content); + + if (val.get("message")) |msg| { + std.log.err("server: {s}", .{msg.String}); + return error.AquilaBadResponse; + } + return val; +} diff --git a/src/cmd/aquila/add.zig b/src/cmd/aquila/add.zig index adffdef30846c3276182a234da9c00c751a9e6a6..c6ff5f52aac8bcaeb7486ee2712bc9de46d2b92b 100644 --- a/src/cmd/aquila/add.zig +++ b/src/cmd/aquila/add.zig @@ -1,9 +1,6 @@ const std = @import("std"); const gpa = std.heap.c_allocator; -const zfetch = @import("zfetch"); -const json = @import("json"); - const u = @import("./../../util/index.zig"); const aq = @import("./../aq.zig"); @@ -14,24 +11,7 @@ pub fn execute(args: [][]u8) !void { const pkg_id = args[0]; const url = try std.mem.join(gpa, "/", &.{ aq.server_root, pkg_id }); - - const req = try zfetch.Request.init(gpa, url, null); - defer req.deinit(); - - var headers = zfetch.Headers.init(gpa); - defer headers.deinit(); - try headers.set("accept", "application/json"); - - try req.do(.GET, headers, null); - - const r = req.reader(); - const body_content = try r.readAllAlloc(gpa, std.math.maxInt(usize)); - const val = try json.parse(gpa, body_content); - - if (val.get("message")) |msg| { - std.log.err("server: {s}", .{msg.String}); - return; - } + const val = try aq.server_fetch(url); const name = val.get(.{ "pkg", "name" }).?.String; -- 2.54.0