From 98390e99385b9886127f28c0d521b3f3ddb94ccc Mon Sep 17 00:00:00 2001 From: eltrac Date: Tue, 26 May 2026 09:11:09 +0800 Subject: feat: add function fetching info from HTTP API --- brewapi.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 brewapi.go (limited to 'brewapi.go') diff --git a/brewapi.go b/brewapi.go new file mode 100644 index 0000000..d520733 --- /dev/null +++ b/brewapi.go @@ -0,0 +1,43 @@ +package main + +import ( + "net/http" + "io" + "encoding/json" + "github.com/fatih/color" +) + +func GetFormulaFromAPI(pkg string) (*FormulaInfo) { + resp, err := http.Get("https://formulae.brew.sh/api/formula/" + pkg + ".json") + if err != nil { + print(err) + color.Red("❌ Error fetching formula info from brew.sh") + return nil + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + + var data FormulaInfo + if err := json.Unmarshal(body, &data); err != nil { + color.Red("❌ Error parsing API response from brew.sh") + } + + return &data +} + +func GetCaskFromAPI(pkg string) (*CaskInfo) { + resp, err := http.Get("https://formulae.brew.sh/api/cask/" + pkg + ".json") + if err != nil { + color.Red("❌ Error fetching formula info from brew.sh") + return nil + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + + var data CaskInfo + if err := json.Unmarshal(body, &data); err != nil { + color.Red("❌ Error parsing API response from brew.sh") + } + + return &data +} -- cgit v1.2.3