Skip to content

Commit 69db3b2

Browse files
committed
fix: updater
1 parent 55e91ac commit 69db3b2

File tree

2 files changed

+18
-39
lines changed

2 files changed

+18
-39
lines changed

lib/next_ls/updater.ex

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,48 +21,26 @@ defmodule NextLS.Updater do
2121
with {:ok, latest_version} <- Version.parse(version),
2222
:gt <- Version.compare(latest_version, current_version) do
2323
with :ok <- File.rename(binpath, binpath <> "-#{Version.to_string(current_version)}"),
24-
{:ok, _} <-
25-
File.open(binpath, [:write], fn file ->
26-
fun = fn request, finch_request, finch_name, finch_options ->
27-
fun = fn
28-
{:status, status}, response ->
29-
%{response | status: status}
30-
31-
{:headers, headers}, response ->
32-
%{response | headers: headers}
33-
34-
{:data, data}, response ->
35-
IO.binwrite(file, data)
36-
response
37-
end
38-
39-
case Finch.stream(finch_request, finch_name, Req.Response.new(), fun, finch_options) do
40-
{:ok, response} -> {request, response}
41-
{:error, exception} -> {request, exception}
42-
end
43-
end
24+
{:error, error} <-
25+
Req.get("/elixir-tools/next-ls/releases/download/#{tag}/next_ls_#{os()}_#{arch()}",
26+
into: File.stream!(binpath),
27+
base_url: github_host,
28+
retry: retry
29+
) do
30+
NextLS.Logger.show_message(logger, :error, "Failed to download version #{version} of Next LS!")
31+
NextLS.Logger.error(logger, "Failed to download Next LS: #{inspect(error)}")
32+
:error
33+
end
4434

45-
with {:error, error} <-
46-
Req.get("/elixir-tools/next-ls/releases/download/#{tag}/next_ls_#{os()}_#{arch()}",
47-
finch_request: fun,
48-
base_url: github_host,
49-
retry: retry
50-
) do
51-
NextLS.Logger.show_message(logger, :error, "Failed to download version #{version} of Next LS!")
52-
NextLS.Logger.error(logger, "Failed to download Next LS: #{inspect(error)}")
53-
:error
54-
end
55-
end) do
56-
File.chmod(binpath, 0o755)
35+
File.chmod(binpath, 0o755)
5736

58-
NextLS.Logger.show_message(
59-
logger,
60-
:info,
61-
"[Next LS] Downloaded v#{version}, please restart your editor for it to take effect."
62-
)
37+
NextLS.Logger.show_message(
38+
logger,
39+
:info,
40+
"[Next LS] Downloaded v#{version}, please restart your editor for it to take effect."
41+
)
6342

64-
NextLS.Logger.info(logger, "Downloaded #{version} of Next LS")
65-
end
43+
NextLS.Logger.info(logger, "Downloaded #{version} of Next LS")
6644
end
6745

6846
{_, error} ->

test/next_ls/updater_test.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ defmodule NextLS.UpdaterTest do
6666

6767
assert File.read!(binpath) == exe
6868
assert File.stat!(binpath).mode == 33_261
69+
assert File.stat!(binpath).size > 10_000
6970
assert File.exists?(binpath <> "-0.9.0")
7071
end
7172

0 commit comments

Comments
 (0)