Github user jiangphcn commented on a diff in the pull request: https://github.com/apache/couchdb-config/pull/21#discussion_r232872036 --- Diff: src/config.erl --- @@ -253,34 +253,45 @@ handle_call({set, Sec, Key, Val, Persist, Reason}, _From, Config) -> true = ets:insert(?MODULE, {{Sec, Key}, Val}), couch_log:notice("~p: [~s] ~s set to ~s for reason ~p", [?MODULE, Sec, Key, Val, Reason]), - case {Persist, Config#config.write_filename} of + ConfigWriteReturn = case {Persist, Config#config.write_filename} of {true, undefined} -> ok; {true, FileName} -> config_writer:save_to_file({{Sec, Key}, Val}, FileName); _ -> ok end, - Event = {config_change, Sec, Key, Val, Persist}, - gen_event:sync_notify(config_event, Event), - {reply, ok, Config} + case ConfigWriteReturn of + ok -> + Event = {config_change, Sec, Key, Val, Persist}, + gen_event:sync_notify(config_event, Event), + {reply, ok, Config}; + {error, _Else} -> + {reply, {error, _Else}, Config} + end end; handle_call({delete, Sec, Key, Persist, Reason}, _From, Config) -> true = ets:delete(?MODULE, {Sec,Key}), couch_log:notice("~p: [~s] ~s deleted for reason ~p", [?MODULE, Sec, Key, Reason]), - case {Persist, Config#config.write_filename} of + ConfigDeleteReturn = case {Persist, Config#config.write_filename} of {true, undefined} -> ok; {true, FileName} -> config_writer:save_to_file({{Sec, Key}, ""}, FileName); _ -> ok end, - Event = {config_change, Sec, Key, deleted, Persist}, - gen_event:sync_notify(config_event, Event), - {reply, ok, Config}; + case ConfigDeleteReturn of + ok -> + Event = {config_change, Sec, Key, deleted, Persist}, + gen_event:sync_notify(config_event, Event), + {reply, ok, Config}; + _Else -> --- End diff -- No need to use _ before Else if _Else is used in clause
---