Add ability to fetch sqlean release URLs
This commit is contained in:
@@ -1,13 +1,10 @@
|
|||||||
defmodule Mix.Tasks.Sqlean.Release do
|
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
|
def fetch_latest_version! do
|
||||||
Application.ensure_all_started(:req)
|
Application.ensure_all_started(:req)
|
||||||
|
|
||||||
@latest_version_url
|
fetch_latest_version_info!()
|
||||||
|> Req.get!()
|
|
||||||
|> Map.get(:body)
|
|
||||||
|> JSON.decode!()
|
|
||||||
|> Map.get("version")
|
|> Map.get("version")
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -17,6 +14,32 @@ defmodule Mix.Tasks.Sqlean.Release do
|
|||||||
|> String.trim()
|
|> String.trim()
|
||||||
end
|
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
|
def version_file do
|
||||||
Application.app_dir(:music_library, [
|
Application.app_dir(:music_library, [
|
||||||
"priv",
|
"priv",
|
||||||
|
|||||||
Reference in New Issue
Block a user