diff options
| -rw-r--r-- | src/rebar_prv_update.erl | 28 | 
1 files changed, 16 insertions, 12 deletions
| diff --git a/src/rebar_prv_update.erl b/src/rebar_prv_update.erl index 0491535..6637ebe 100644 --- a/src/rebar_prv_update.erl +++ b/src/rebar_prv_update.erl @@ -44,24 +44,28 @@ do(State) ->          TmpFile = filename:join(TmpDir, "packages.gz"),          Url = rebar_state:get(State, rebar_packages_cdn, ?DEFAULT_HEX_REGISTRY), -        {ok, _RequestId} = httpc:request(get, {Url, []}, -                                         [], [{stream, TmpFile}, {sync, true}], -                                         rebar), -        {ok, Data} = file:read_file(TmpFile), -        Unzipped = zlib:gunzip(Data), -        ok = file:write_file(HexFile, Unzipped), -        ?INFO("Writing registry to ~s", [HexFile]), -        hex_to_index(State), -        ok +        case httpc:request(get, {Url, []}, +                           [], [{stream, TmpFile}, {sync, true}], +                           rebar) of +            {ok, saved_to_file} -> +                {ok, Data} = file:read_file(TmpFile), +                Unzipped = zlib:gunzip(Data), +                ok = file:write_file(HexFile, Unzipped), +                ?INFO("Writing registry to ~s", [HexFile]), +                hex_to_index(State), +                {ok, State}; +            _ -> +                ?PRV_ERROR(package_index_download) +        end      catch          _E:C ->              ?DEBUG("Error creating package index: ~p ~p", [C, erlang:get_stacktrace()]),              throw(?PRV_ERROR(package_index_write)) -    end, - -    {ok, State}. +    end.  -spec format_error(any()) -> iolist(). +format_error(package_index_download) -> +    "Failed to download package index.";  format_error(package_index_write) ->      "Failed to write package index.". | 
