aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2021-06-25 12:40:26 +0200
committerBadlop <badlop@process-one.net>2021-06-25 12:53:43 +0200
commit0fe2aea70969ea36bd4fe40997c261e5a3e974d2 (patch)
tree837d4ed6b9c56baae1900e77ed5565a2e13d488a
parentSet SCRIPT_DIR as done by the ejabberd script generated by "rebar3 release" (diff)
New "make dev" and "./ejabberdctl" (requires using rebar3)
-rw-r--r--.gitignore1
-rw-r--r--Makefile.in5
-rw-r--r--rebar.config10
-rw-r--r--rebar.config.script6
-rwxr-xr-xrel/setup-dev.sh31
5 files changed, 52 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index cd173988c..3e0fe0d08 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@
/ebin/
/ejabberd.init
/ejabberd.service
+/ejabberdctl
/ejabberdctl.example
/rel/ejabberd/
/src/eldap_filter_yecc.erl
diff --git a/Makefile.in b/Makefile.in
index 2f6490d8a..c5b12c27f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -362,6 +362,11 @@ distclean: clean clean-rel
rel:
$(REBAR) $(REBARREL)
+DEV_CONFIG = _build/dev/rel/ejabberd/etc/ejabberd/ejabberd.yml
+
+dev $(DEV_CONFIG):
+ REBAR_PROFILE=dev rebar3 release
+
TAGS:
etags *.erl
diff --git a/rebar.config b/rebar.config
index a5eb1477f..f443a84f3 100644
--- a/rebar.config
+++ b/rebar.config
@@ -192,7 +192,17 @@
{overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"},
{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"},
{copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}]}]}]},
+ {dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]},
+ {relx, [{dev_mode, true},
+ {debug_info, keep},
+ {include_erts, true},
+ {include_src, false},
+ {overlay, [{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg.example"},
+ {copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml.example"},
+ {copy, "test/ejabberd_SUITE_data/ca.pem", "etc/ejabberd/"},
+ {copy, "test/ejabberd_SUITE_data/cert.pem", "etc/ejabberd/"}]}]}]},
{test, [{erl_opts, [nowarn_export_all]}]}]}.
+
%% Local Variables:
%% mode: erlang
%% End:
diff --git a/rebar.config.script b/rebar.config.script
index 21f35b50c..9e47b70e3 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -341,10 +341,14 @@ end,
ProcessRelx = fun(Relx, Deps) ->
{value, {release, NameVersion, DefaultApps}, RelxTail} = lists:keytake(release, 1, Relx),
+ ProfileApps = case os:getenv("REBAR_PROFILE") of
+ "dev" -> [observer, runtime_tools, wx, debugger];
+ _ -> []
+ end,
DepApps = lists:map(fun({DepName, _, _}) -> DepName;
({DepName, _}) -> DepName
end, Deps),
- [{release, NameVersion, DefaultApps ++ DepApps} | RelxTail]
+ [{release, NameVersion, DefaultApps ++ ProfileApps ++ DepApps} | RelxTail]
end,
GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of
diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh
new file mode 100755
index 000000000..664a2a68d
--- /dev/null
+++ b/rel/setup-dev.sh
@@ -0,0 +1,31 @@
+echo -n "===> Preparing dev configuration files: "
+
+PWD=`pwd`
+REL_DIR=$PWD/_build/dev/rel/
+CON_DIR=$REL_DIR/ejabberd/etc/ejabberd/
+BIN_DIR=$REL_DIR/ejabberd/bin/
+CTLPATH=$BIN_DIR/ejabberdctl
+
+[ ! -f "ejabberdctl" ] \
+ && echo -n "ejabberdctl " \
+ && ln -s $CTLPATH ejabberdctl \
+ && (cd $BIN_DIR && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=`pwd`|g" ejabberdctl)
+
+cd $CON_DIR
+
+[ ! -f "ejabberd.yml" ] \
+ && echo -n "ejabberd.yml " \
+ && mv ejabberd.yml.example ejabberd.yml \
+ && sed -i "s|# certfiles:|certfiles:\n - $CON_DIR/cert.pem|g" ejabberd.yml \
+ && sed -i "s|certfiles:|ca_file: $CON_DIR/ca.pem\ncertfiles:|g" ejabberd.yml \
+ && sed -i 's|^acl:$|acl:\n admin: [user: admin]|g' ejabberd.yml \
+ || rm ejabberd.yml.example
+
+[ ! -f "ejabberdctl.cfg" ] \
+ && echo -n "ejabberdctl.cfg " \
+ && mv ejabberdctl.cfg.example ejabberdctl.cfg \
+ && sed -i "s|#' POLL|EJABBERD_BYPASS_WARNINGS=true\n\n#' POLL|g" ejabberdctl.cfg \
+ || rm ejabberdctl.cfg.example
+
+echo ""
+echo "===> Now you can start this ejabberd dev with: ./ejabberdctl live"