Switch "make rel" and "make dev" to paths: conf, database, logs

This commit is contained in:
Badlop 2022-04-25 12:46:48 +02:00
parent a852c31c6c
commit 45c7fbb5ae
10 changed files with 66 additions and 66 deletions

View File

@ -278,29 +278,29 @@ relive:
relivelibdir=$(shell pwd)/$(DEPSDIR) relivelibdir=$(shell pwd)/$(DEPSDIR)
relivedir=$(shell pwd)/_build/relive relivedir=$(shell pwd)/_build/relive
iexpath=$(shell which iex) iexpath=$(shell which iex)
CONFIG_DIR = ${relivedir}/conf
SPOOL_DIR = ${relivedir}/database
LOGS_DIR = ${relivedir}/logs
ejabberdctl.relive: ejabberdctl.relive:
$(SED) -e "s*{{rootdir}}*@prefix@*g" \ $(SED) -e "s*{{installuser}}*@INSTALLUSER@*g" \
-e "s*{{installuser}}*@INSTALLUSER@*g" \ -e "s*{{config_dir}}*${CONFIG_DIR}*g" \
-e "s*{{logs_dir}}*${LOGS_DIR}*g" \
-e "s*{{spool_dir}}*${SPOOL_DIR}*g" \
-e "s*{{bindir}}/iex*$(iexpath)*g" \ -e "s*{{bindir}}/iex*$(iexpath)*g" \
-e "s*{{bindir}}*@bindir@*g" \ -e "s*{{bindir}}*@bindir@*g" \
-e "s*{{libdir}}*${relivelibdir}*g" \ -e "s*{{libdir}}*${relivelibdir}*g" \
-e "s*{{sysconfdir}}/ejabberd*$(relivedir)/conf*g" \
-e "s*{{localstatedir}}/log/ejabberd*$(relivedir)/logs*g" \
-e "s*{{localstatedir}}/lib/ejabberd*$(relivedir)/database*g" \
-e "s*{{docdir}}*@docdir@*g" \
-e "s*{{erl}}*@ERL@*g" \ -e "s*{{erl}}*@ERL@*g" \
-e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \ -e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \
> ejabberdctl.relive > ejabberdctl.relive
ejabberdctl.example: ejabberdctl.example: vars.config
$(SED) -e "s*{{rootdir}}*@prefix@*g" \ $(SED) -e "s*{{installuser}}*@INSTALLUSER@*g" \
-e "s*{{installuser}}*@INSTALLUSER@*g" \ -e "s*{{config_dir}}*${ETCDIR}*g" \
-e "s*{{logs_dir}}*${LOGDIR}*g" \
-e "s*{{spool_dir}}*${SPOOLDIR}*g" \
-e "s*{{bindir}}*@bindir@*g" \ -e "s*{{bindir}}*@bindir@*g" \
-e "s*{{libdir}}*@libdir@*g" \ -e "s*{{libdir}}*@libdir@*g" \
-e "s*{{sysconfdir}}*@sysconfdir@*g" \
-e "s*{{localstatedir}}*@localstatedir@*g" \
-e "s*{{docdir}}*@docdir@*g" \
-e "s*{{erl}}*@ERL@*g" \ -e "s*{{erl}}*@ERL@*g" \
-e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \ -e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \
> ejabberdctl.example > ejabberdctl.example
@ -417,7 +417,7 @@ distclean: clean clean-rel
rel: rel:
$(REBARREL) $(REBARREL)
DEV_CONFIG = _build/dev/rel/ejabberd/etc/ejabberd/ejabberd.yml DEV_CONFIG = _build/dev/rel/ejabberd/conf/ejabberd.yml
dev $(DEV_CONFIG): dev $(DEV_CONFIG):
$(REBARDEV) $(REBARDEV)

View File

@ -1,18 +1,13 @@
import Config import Config
case System.get_env("RELIVE", "false") do rootdefault = case System.get_env("RELIVE", "false") do
"true" -> "true" -> "_build/relive"
rootpath = System.get_env("RELEASE_ROOT", "_build/relive") "false" -> ""
config :ejabberd,
file: Path.join(rootpath, "conf/ejabberd.yml"),
log_path: Path.join(rootpath, 'logs/ejabberd.log')
config :mnesia,
dir: Path.join(rootpath, 'database/')
"false" ->
rootpath = System.get_env("RELEASE_ROOT", "")
config :ejabberd,
file: Path.join(rootpath, "etc/ejabberd/ejabberd.yml"),
log_path: Path.join(rootpath, 'var/log/ejabberd/ejabberd.log')
config :mnesia,
dir: Path.join(rootpath, 'var/lib/ejabberd/')
end end
rootpath = System.get_env("RELEASE_ROOT", rootdefault)
config :ejabberd,
file: Path.join(rootpath, "conf/ejabberd.yml"),
log_path: Path.join(rootpath, 'logs/ejabberd.log')
config :mnesia,
dir: Path.join(rootpath, 'database/')

View File

@ -50,20 +50,20 @@ while [ $# -gt 0 ]; do
-l|--logs) LOGS_DIR=$2; shift 2;; -l|--logs) LOGS_DIR=$2; shift 2;;
-f|--config) EJABBERD_CONFIG_PATH=$2; shift 2;; -f|--config) EJABBERD_CONFIG_PATH=$2; shift 2;;
-c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift 2;; -c|--ctl-config) EJABBERDCTL_CONFIG_PATH=$2; shift 2;;
-d|--config-dir) ETC_DIR=$2; shift 2;; -d|--config-dir) CONFIG_DIR=$2; shift 2;;
-t|--no-timeout) NO_TIMEOUT="--no-timeout"; shift;; -t|--no-timeout) NO_TIMEOUT="--no-timeout"; shift;;
*) break;; *) break;;
esac esac
done done
# define ejabberd variables if not already defined from the command line # define ejabberd variables if not already defined from the command line
: "${ETC_DIR:="{{sysconfdir}}/ejabberd"}" : "${CONFIG_DIR:="{{config_dir}}"}"
: "${LOGS_DIR:="{{localstatedir}}/log/ejabberd"}" : "${LOGS_DIR:="{{logs_dir}}"}"
: "${SPOOL_DIR:="{{localstatedir}}/lib/ejabberd"}" : "${SPOOL_DIR:="{{spool_dir}}"}"
: "${EJABBERD_CONFIG_PATH:="$ETC_DIR/ejabberd.yml"}" : "${EJABBERD_CONFIG_PATH:="$CONFIG_DIR/ejabberd.yml"}"
: "${EJABBERDCTL_CONFIG_PATH:="$ETC_DIR/ejabberdctl.cfg"}" : "${EJABBERDCTL_CONFIG_PATH:="$CONFIG_DIR/ejabberdctl.cfg"}"
# Allows passing extra Erlang command-line arguments in vm.args file # Allows passing extra Erlang command-line arguments in vm.args file
: "${VMARGS:="$ETC_DIR/vm.args"}" : "${VMARGS:="$CONFIG_DIR/vm.args"}"
# shellcheck source=ejabberdctl.cfg.example # shellcheck source=ejabberdctl.cfg.example
[ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH" [ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH"
[ -n "$ERLANG_NODE_ARG" ] && ERLANG_NODE="$ERLANG_NODE_ARG" [ -n "$ERLANG_NODE_ARG" ] && ERLANG_NODE="$ERLANG_NODE_ARG"
@ -85,7 +85,7 @@ fi
[ -f "$VMARGS" ] && ERLANG_OPTS="$ERLANG_OPTS -args_file $VMARGS" [ -f "$VMARGS" ] && ERLANG_OPTS="$ERLANG_OPTS -args_file $VMARGS"
ERL_LIBS='{{libdir}}' ERL_LIBS='{{libdir}}'
ERL_CRASH_DUMP="$LOGS_DIR"/erl_crash_$(date "+%Y%m%d-%H%M%S").dump ERL_CRASH_DUMP="$LOGS_DIR"/erl_crash_$(date "+%Y%m%d-%H%M%S").dump
ERL_INETRC="$ETC_DIR"/inetrc ERL_INETRC="$CONFIG_DIR"/inetrc
# define ejabberd parameters # define ejabberd parameters
EJABBERD_OPTS="$EJABBERD_OPTS\ EJABBERD_OPTS="$EJABBERD_OPTS\
@ -193,7 +193,7 @@ help()
echo " started|stopped Wait for the node to fully start|stop" echo " started|stopped Wait for the node to fully start|stop"
echo "" echo ""
echo "Optional parameters when starting an ejabberd node:" echo "Optional parameters when starting an ejabberd node:"
echo " --config-dir dir Config ejabberd: $ETC_DIR" echo " --config-dir dir Config ejabberd: $CONFIG_DIR"
echo " --config file Config ejabberd: $EJABBERD_CONFIG_PATH" echo " --config file Config ejabberd: $EJABBERD_CONFIG_PATH"
echo " --ctl-config file Config ejabberdctl: $EJABBERDCTL_CONFIG_PATH" echo " --ctl-config file Config ejabberdctl: $EJABBERDCTL_CONFIG_PATH"
echo " --logs dir Directory for logs: $LOGS_DIR" echo " --logs dir Directory for logs: $LOGS_DIR"

16
mix.exs
View File

@ -235,7 +235,9 @@ defmodule Ejabberd.MixProject do
libdir: config(:libdir), libdir: config(:libdir),
sysconfdir: config(:sysconfdir), sysconfdir: config(:sysconfdir),
localstatedir: config(:localstatedir), localstatedir: config(:localstatedir),
docdir: config(:docdir), config_dir: config(:config_dir),
logs_dir: config(:logs_dir),
spool_dir: config(:spool_dir),
erl: config(:erl), erl: config(:erl),
epmd: config(:epmd), epmd: config(:epmd),
bindir: Path.join([config(:release_dir), "releases", version()]), bindir: Path.join([config(:release_dir), "releases", version()]),
@ -286,15 +288,15 @@ defmodule Ejabberd.MixProject do
suffix = case Mix.env() do suffix = case Mix.env() do
:dev -> :dev ->
Mix.Generator.copy_file("test/ejabberd_SUITE_data/ca.pem", "#{ro}/etc/ejabberd/ca.pem") Mix.Generator.copy_file("test/ejabberd_SUITE_data/ca.pem", "#{ro}/conf/ca.pem")
Mix.Generator.copy_file("test/ejabberd_SUITE_data/cert.pem", "#{ro}/etc/ejabberd/cert.pem") Mix.Generator.copy_file("test/ejabberd_SUITE_data/cert.pem", "#{ro}/conf/cert.pem")
".example" ".example"
_ -> "" _ -> ""
end end
Mix.Generator.copy_file("ejabberd.yml.example", "#{ro}/etc/ejabberd/ejabberd.yml#{suffix}") Mix.Generator.copy_file("ejabberd.yml.example", "#{ro}/conf/ejabberd.yml#{suffix}")
Mix.Generator.copy_file("ejabberdctl.cfg.example", "#{ro}/etc/ejabberd/ejabberdctl.cfg#{suffix}") Mix.Generator.copy_file("ejabberdctl.cfg.example", "#{ro}/conf/ejabberdctl.cfg#{suffix}")
Mix.Generator.copy_file("inetrc", "#{ro}/etc/ejabberd/inetrc") Mix.Generator.copy_file("inetrc", "#{ro}/conf/inetrc")
Enum.each(File.ls!("sql"), Enum.each(File.ls!("sql"),
fn x -> fn x ->
@ -316,8 +318,6 @@ defmodule Ejabberd.MixProject do
&& File.cp_r!(source_dir, target_dir) && File.cp_r!(source_dir, target_dir)
end end
Mix.Generator.create_directory("#{ro}/var/lib/ejabberd")
case Mix.env() do case Mix.env() do
:dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh") :dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh")
_ -> :ok _ -> :ok

View File

@ -190,12 +190,12 @@
{sys_config, "./rel/sys.config"}, {sys_config, "./rel/sys.config"},
{vm_args, "./rel/vm.args"}, {vm_args, "./rel/vm.args"},
{overlay_vars, "vars.config"}, {overlay_vars, "vars.config"},
{overlay, [{mkdir, "var/log/ejabberd"}, {overlay, [{mkdir, "logs"},
{mkdir, "var/lib/ejabberd"}, {mkdir, "database"},
{mkdir, "etc/ejabberd"}, {mkdir, "conf"},
{copy, "rel/files/erl", "erts-\{\{erts_vsn\}\}/bin/erl"}, {copy, "rel/files/erl", "erts-\{\{erts_vsn\}\}/bin/erl"},
{template, "ejabberdctl.template", "bin/ejabberdctl"}, {template, "ejabberdctl.template", "bin/ejabberdctl"},
{copy, "inetrc", "etc/ejabberd/inetrc"}, {copy, "inetrc", "conf/inetrc"},
{copy, "tools/captcha*.sh", "lib/ejabberd-\{\{release_version\}\}/priv/bin/"}, {copy, "tools/captcha*.sh", "lib/ejabberd-\{\{release_version\}\}/priv/bin/"},
{copy, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]} {copy, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]}
]}. ]}.
@ -206,8 +206,8 @@
{include_src, true}, {include_src, true},
{generate_start_script, false}, {generate_start_script, false},
{overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"}, {overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"},
{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, {copy, "ejabberdctl.cfg.example", "conf/ejabberdctl.cfg"},
{copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}]}]}]}, {copy, "ejabberd.yml.example", "conf/ejabberd.yml"}]}]}]},
{dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]}, {dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]},
{relx, [{debug_info, keep}, {relx, [{debug_info, keep},
{dev_mode, true}, {dev_mode, true},
@ -215,10 +215,10 @@
{include_src, false}, {include_src, false},
{generate_start_script, true}, {generate_start_script, true},
{extended_start_script, true}, {extended_start_script, true},
{overlay, [{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg.example"}, {overlay, [{copy, "ejabberdctl.cfg.example", "conf/ejabberdctl.cfg.example"},
{copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml.example"}, {copy, "ejabberd.yml.example", "conf/ejabberd.yml.example"},
{copy, "test/ejabberd_SUITE_data/ca.pem", "etc/ejabberd/"}, {copy, "test/ejabberd_SUITE_data/ca.pem", "conf/"},
{copy, "test/ejabberd_SUITE_data/cert.pem", "etc/ejabberd/"}]}]}]}, {copy, "test/ejabberd_SUITE_data/cert.pem", "conf/"}]}]}]},
{test, [{erl_opts, [nowarn_export_all]}]}]}. {test, [{erl_opts, [nowarn_export_all]}]}]}.
{alias, [{relive, [{shell, "--apps ejabberd \ {alias, [{relive, [{shell, "--apps ejabberd \

View File

@ -88,15 +88,15 @@ Sys = [{lib_dirs, []},
end, OTPApps). end, OTPApps).
Overlay = [ Overlay = [
{mkdir, "var/log/ejabberd"}, {mkdir, "logs"},
{mkdir, "var/lib/ejabberd"}, {mkdir, "database"},
{mkdir, "etc/ejabberd"}, {mkdir, "conf"},
{mkdir, "doc"}, {mkdir, "doc"},
{template, "files/erl", "\{\{erts_vsn\}\}/bin/erl"}, {template, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
{template, "../ejabberdctl.template", "bin/ejabberdctl"}, {template, "../ejabberdctl.template", "bin/ejabberdctl"},
{copy, "../ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, {copy, "../ejabberdctl.cfg.example", "conf/ejabberdctl.cfg"},
{copy, "../ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}, {copy, "../ejabberd.yml.example", "conf/ejabberd.yml"},
{copy, "../inetrc", "etc/ejabberd/inetrc"}, {copy, "../inetrc", "conf/inetrc"},
{copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"} {copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"}
], ],

View File

@ -2,10 +2,10 @@ echo -n "===> Preparing dev configuration files: "
PWD_DIR=`pwd` PWD_DIR=`pwd`
REL_DIR=$PWD_DIR/_build/dev/rel/ejabberd/ REL_DIR=$PWD_DIR/_build/dev/rel/ejabberd/
CON_DIR=$REL_DIR/etc/ejabberd/ CON_DIR=$REL_DIR/conf/
[ -z "$REL_DIR_TEMP" ] && REL_DIR_TEMP=$REL_DIR [ -z "$REL_DIR_TEMP" ] && REL_DIR_TEMP=$REL_DIR
CON_DIR_TEMP=$REL_DIR_TEMP/etc/ejabberd/ CON_DIR_TEMP=$REL_DIR_TEMP/conf/
BIN_DIR_TEMP=$REL_DIR_TEMP/bin/ BIN_DIR_TEMP=$REL_DIR_TEMP/bin/
cd $CON_DIR_TEMP cd $CON_DIR_TEMP

View File

@ -1,2 +1,2 @@
[{ejabberd, [{config, "etc/ejabberd/ejabberd.yml"}, [{ejabberd, [{config, "conf/ejabberd.yml"},
{log_path, "var/log/ejabberd/ejabberd.log"}]}]. {log_path, "logs/ejabberd.log"}]}].

View File

@ -4,7 +4,7 @@
## Cookie for distributed erlang ## Cookie for distributed erlang
#-setcookie ejabberd #-setcookie ejabberd
-mnesia dir \"var/lib/ejabberd\" -mnesia dir \"database\"
## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive ## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive
## (Disabled by default..use with caution!) ## (Disabled by default..use with caution!)

View File

@ -59,6 +59,11 @@
{libdir, "{{release_dir}}/lib"}. {libdir, "{{release_dir}}/lib"}.
{docdir, "{{release_dir}}/doc"}. {docdir, "{{release_dir}}/doc"}.
%% OTP release
{config_dir, "{{release_dir}}/conf"}.
{logs_dir, "{{release_dir}}/logs"}.
{spool_dir, "{{release_dir}}/database"}.
{latest_deps, @latest_deps@}. {latest_deps, @latest_deps@}.
{system_deps, @system_deps@}. {system_deps, @system_deps@}.