summaryrefslogtreecommitdiff
path: root/src/rebar_prv_unlock.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar_prv_unlock.erl')
-rw-r--r--src/rebar_prv_unlock.erl21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/rebar_prv_unlock.erl b/src/rebar_prv_unlock.erl
index 7ff0d89..6fe8bd8 100644
--- a/src/rebar_prv_unlock.erl
+++ b/src/rebar_prv_unlock.erl
@@ -48,12 +48,8 @@ do(State) ->
?PRV_ERROR({file,Reason});
{ok, _} ->
Locks = rebar_config:consult_lock_file(LockFile),
- case handle_unlocks(State, Locks, LockFile) of
- ok ->
- {ok, State};
- {error, Reason} ->
- ?PRV_ERROR({file,Reason})
- end
+ {ok, NewLocks} = handle_unlocks(State, Locks, LockFile),
+ {ok, rebar_state:set(State, {locks, default}, NewLocks)}
end.
-spec format_error(any()) -> iolist().
@@ -66,18 +62,21 @@ format_error(Reason) ->
handle_unlocks(State, Locks, LockFile) ->
{Args, _} = rebar_state:command_parsed_args(State),
- Names = parse_names(ec_cnv:to_binary(proplists:get_value(package, Args, <<"">>))),
+ Names = parse_names(rebar_utils:to_binary(proplists:get_value(package, Args, <<"">>))),
case [Lock || Lock = {Name, _, _} <- Locks, not lists:member(Name, Names)] of
[] ->
- file:delete(LockFile);
+ file:delete(LockFile),
+ {ok, []};
_ when Names =:= [] -> % implicitly all locks
- file:delete(LockFile);
+ file:delete(LockFile),
+ {ok, []};
NewLocks ->
- rebar_config:write_lock_file(LockFile, NewLocks)
+ rebar_config:write_lock_file(LockFile, NewLocks),
+ {ok, NewLocks}
end.
parse_names(Bin) ->
- case lists:usort(re:split(Bin, <<" *, *">>, [trim])) of
+ case lists:usort(re:split(Bin, <<" *, *">>, [trim, unicode])) of
[<<"">>] -> []; % nothing submitted
Other -> Other
end.