Skip to content

Commit

Permalink
Produce a better error message if qdate hasn't been started
Browse files Browse the repository at this point in the history
  • Loading branch information
choptastic committed Jan 10, 2024
1 parent 817c14c commit 794d03a
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 19 deletions.
26 changes: 12 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
REBAR_PATH = $(shell which rebar3)
all: compile

ifeq ($(REBAR_PATH),)
REBAR = $(shell pwd)/rebar3
else
REBAR = rebar3
# Check if rebar3.mk exists, and if not, download it
ifeq ("$(wildcard rebar3.mk)","")
$(shell curl -O https://raw.githubusercontent.com/choptastic/rebar3.mk/master/rebar3.mk)
endif

# rebar3.mk adds a new rebar3 rule to your Makefile
# (see https://github.com/choptastic/rebar3.mk) for full info
include rebar3.mk

all: compile

compile:
compile: rebar3
$(REBAR) compile

update:
update: rebar3
$(REBAR) update

test: compile
Expand All @@ -28,11 +28,9 @@ dev:
cd _checkouts; git clone https://github.com/choptastic/qdate_localtime


run:
run: rebar3
$(REBAR) shell

publish:
$(REBAR) as pkg upgrade
$(REBAR) as pkg hex publish
$(REBAR) upgrade
publish: rebar3
$(REBAR) hex publish

2 changes: 1 addition & 1 deletion rebar.config
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
{deps,
[
erlware_commons,
{qdate_localtime, "1.2.0"}
{qdate_localtime, "~> 1.2.0"}
]}.
4 changes: 2 additions & 2 deletions src/qdate.app.src
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
{registered, []},
{applications, [
kernel,
stdlib,
qdate_localtime,
erlware_commons,
stdlib
erlware_commons
]},
{modules, [qdate, qdate_srv, qdate_sup, qdate_app]},
{env, []},
Expand Down
22 changes: 20 additions & 2 deletions src/qdate_srv.erl
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,26 @@ unset_env(Key) ->
gen_server:call(?SERVER, {unset, ?KEY(Key)}).

get_all_env(FilterTag) ->
All = ets:tab2list(?TABLE),
[{Key, V} || {{?BASETAG, {Tag, Key}}, V} <- All, Tag==FilterTag].
try ets:tab2list(?TABLE) of
All ->
[{Key, V} || {{?BASETAG, {Tag, Key}}, V} <- All, Tag==FilterTag]
catch
error:badarg:S ->
Msg = maybe_start_msg(),
logger:error(Msg),

error({qdate_get_all_env_failed, #{
original_error => {error, badarg, S}
}})
end.

maybe_start_msg() ->
"Attempting to read qdate environment failed (qdate_srv:get_all_env/1).\n"
"qdate may not have been started properly.\n"
"Please ensure qdate is started properly by either:\n"
"* Putting qdate in the 'applications' key in your .app.src or .app file, or\n"
"* Starting it manually with application:ensure_all_started(qdate) or qdate:start().".


%% ProcDic Vars

Expand Down

0 comments on commit 794d03a

Please sign in to comment.