浏览代码

Merge pull request #1761 from ferd/fix-local-upgrade-etag

Fix local upgrade etag handling
pull/1764/head
Fred Hebert 7 年前
提交者 GitHub
父节点
当前提交
dc6207f5b5
找不到此签名对应的密钥 GPG 密钥 ID: 4AEE18F83AFDEB23
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. +10
    -1
      src/rebar_prv_local_upgrade.erl

+ 10
- 1
src/rebar_prv_local_upgrade.erl 查看文件

@ -80,7 +80,7 @@ maybe_fetch_rebar3(Rebar3Md5) ->
case rebar_pkg_resource:request("https://s3.amazonaws.com/rebar3/rebar3", Rebar3Md5) of case rebar_pkg_resource:request("https://s3.amazonaws.com/rebar3/rebar3", Rebar3Md5) of
{ok, Binary, ETag} -> {ok, Binary, ETag} ->
file:write_file(TmpFile, Binary), file:write_file(TmpFile, Binary),
case rebar_pkg_resource:etag(TmpFile) of
case etag(TmpFile) of
ETag -> ETag ->
{saved, TmpFile}; {saved, TmpFile};
_ -> _ ->
@ -92,3 +92,12 @@ maybe_fetch_rebar3(Rebar3Md5) ->
?CONSOLE("No upgrade available", []), ?CONSOLE("No upgrade available", []),
up_to_date up_to_date
end. end.
etag(Path) ->
case file:read_file(Path) of
{ok, Binary} ->
<<X:128/big-unsigned-integer>> = crypto:hash(md5, Binary),
rebar_string:lowercase(lists:flatten(io_lib:format("~32.16.0b", [X])));
{error, _} ->
false
end.

正在加载...
取消
保存