From 4314ed6cfc6bdab3dba99e3bc97f7aa577c39866 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 13 Sep 2025 12:19:57 +0300 Subject: [PATCH] Add ability to fetch sqlean release URLs --- lib/mix/tasks/sqlean/release.ex | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/lib/mix/tasks/sqlean/release.ex b/lib/mix/tasks/sqlean/release.ex index a764a2e6..6fe53c4e 100644 --- a/lib/mix/tasks/sqlean/release.ex +++ b/lib/mix/tasks/sqlean/release.ex @@ -1,13 +1,10 @@ defmodule Mix.Tasks.Sqlean.Release do - @latest_version_url "https://raw.githubusercontent.com/nalgeon/sqlean/refs/heads/main/sqlpkg.json" + @latest_version_info_url "https://raw.githubusercontent.com/nalgeon/sqlean/refs/heads/main/sqlpkg.json" def fetch_latest_version! do Application.ensure_all_started(:req) - @latest_version_url - |> Req.get!() - |> Map.get(:body) - |> JSON.decode!() + fetch_latest_version_info!() |> Map.get("version") end @@ -17,6 +14,32 @@ defmodule Mix.Tasks.Sqlean.Release do |> String.trim() end + # https://github.com/nalgeon/sqlean/releases/download/0.28.0/sqlean-linux-arm64.zip + def fetch_release_urls! do + Application.ensure_all_started(:req) + + assets = + fetch_latest_version_info!() + |> get_in(["assets", "files"]) + + version = fetch_latest_version!() + + Enum.map(assets, fn {arch, file} -> + {arch, full_url(version, file)} + end) + end + + defp fetch_latest_version_info! do + @latest_version_info_url + |> Req.get!() + |> Map.get(:body) + |> JSON.decode!() + end + + defp full_url(version, file) do + "https://github.com/nalgeon/sqlean/releases/download/" <> version <> "/" <> file + end + def version_file do Application.app_dir(:music_library, [ "priv",