From 45c7fbb5ae3760073691dd25745ba415283d920c Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 25 Apr 2022 12:46:48 +0200 Subject: [PATCH] Switch "make rel" and "make dev" to paths: conf, database, logs --- Makefile.in | 26 +++++++++++++------------- config/runtime.exs | 25 ++++++++++--------------- ejabberdctl.template | 18 +++++++++--------- mix.exs | 16 ++++++++-------- rebar.config | 20 ++++++++++---------- rel/reltool.config.script | 12 ++++++------ rel/setup-dev.sh | 4 ++-- rel/sys.config | 4 ++-- rel/vm.args | 2 +- vars.config.in | 5 +++++ 10 files changed, 66 insertions(+), 66 deletions(-) diff --git a/Makefile.in b/Makefile.in index 982e6df52..13f7b556d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -278,29 +278,29 @@ relive: relivelibdir=$(shell pwd)/$(DEPSDIR) relivedir=$(shell pwd)/_build/relive iexpath=$(shell which iex) +CONFIG_DIR = ${relivedir}/conf +SPOOL_DIR = ${relivedir}/database +LOGS_DIR = ${relivedir}/logs ejabberdctl.relive: - $(SED) -e "s*{{rootdir}}*@prefix@*g" \ - -e "s*{{installuser}}*@INSTALLUSER@*g" \ + $(SED) -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}}*@bindir@*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*{{epmd}}*@EPMD@*g" ejabberdctl.template \ > ejabberdctl.relive -ejabberdctl.example: - $(SED) -e "s*{{rootdir}}*@prefix@*g" \ - -e "s*{{installuser}}*@INSTALLUSER@*g" \ +ejabberdctl.example: vars.config + $(SED) -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*{{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*{{epmd}}*@EPMD@*g" ejabberdctl.template \ > ejabberdctl.example @@ -417,7 +417,7 @@ distclean: clean clean-rel rel: $(REBARREL) -DEV_CONFIG = _build/dev/rel/ejabberd/etc/ejabberd/ejabberd.yml +DEV_CONFIG = _build/dev/rel/ejabberd/conf/ejabberd.yml dev $(DEV_CONFIG): $(REBARDEV) diff --git a/config/runtime.exs b/config/runtime.exs index ad8c6bdc9..b4e6dc5f1 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -1,18 +1,13 @@ import Config -case System.get_env("RELIVE", "false") do - "true" -> - rootpath = System.get_env("RELEASE_ROOT", "_build/relive") - 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/') +rootdefault = case System.get_env("RELIVE", "false") do + "true" -> "_build/relive" + "false" -> "" 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/') diff --git a/ejabberdctl.template b/ejabberdctl.template index 7f0e0c96d..5b9ef36cb 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -50,20 +50,20 @@ while [ $# -gt 0 ]; do -l|--logs) LOGS_DIR=$2; shift 2;; -f|--config) EJABBERD_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;; *) break;; esac done # define ejabberd variables if not already defined from the command line -: "${ETC_DIR:="{{sysconfdir}}/ejabberd"}" -: "${LOGS_DIR:="{{localstatedir}}/log/ejabberd"}" -: "${SPOOL_DIR:="{{localstatedir}}/lib/ejabberd"}" -: "${EJABBERD_CONFIG_PATH:="$ETC_DIR/ejabberd.yml"}" -: "${EJABBERDCTL_CONFIG_PATH:="$ETC_DIR/ejabberdctl.cfg"}" +: "${CONFIG_DIR:="{{config_dir}}"}" +: "${LOGS_DIR:="{{logs_dir}}"}" +: "${SPOOL_DIR:="{{spool_dir}}"}" +: "${EJABBERD_CONFIG_PATH:="$CONFIG_DIR/ejabberd.yml"}" +: "${EJABBERDCTL_CONFIG_PATH:="$CONFIG_DIR/ejabberdctl.cfg"}" # 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 [ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH" [ -n "$ERLANG_NODE_ARG" ] && ERLANG_NODE="$ERLANG_NODE_ARG" @@ -85,7 +85,7 @@ fi [ -f "$VMARGS" ] && ERLANG_OPTS="$ERLANG_OPTS -args_file $VMARGS" ERL_LIBS='{{libdir}}' 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 EJABBERD_OPTS="$EJABBERD_OPTS\ @@ -193,7 +193,7 @@ help() echo " started|stopped Wait for the node to fully start|stop" echo "" 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 " --ctl-config file Config ejabberdctl: $EJABBERDCTL_CONFIG_PATH" echo " --logs dir Directory for logs: $LOGS_DIR" diff --git a/mix.exs b/mix.exs index 7adf2e869..d73489797 100644 --- a/mix.exs +++ b/mix.exs @@ -235,7 +235,9 @@ defmodule Ejabberd.MixProject do libdir: config(:libdir), sysconfdir: config(:sysconfdir), localstatedir: config(:localstatedir), - docdir: config(:docdir), + config_dir: config(:config_dir), + logs_dir: config(:logs_dir), + spool_dir: config(:spool_dir), erl: config(:erl), epmd: config(:epmd), bindir: Path.join([config(:release_dir), "releases", version()]), @@ -286,15 +288,15 @@ defmodule Ejabberd.MixProject do suffix = case Mix.env() do :dev -> - Mix.Generator.copy_file("test/ejabberd_SUITE_data/ca.pem", "#{ro}/etc/ejabberd/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/ca.pem", "#{ro}/conf/ca.pem") + Mix.Generator.copy_file("test/ejabberd_SUITE_data/cert.pem", "#{ro}/conf/cert.pem") ".example" _ -> "" end - Mix.Generator.copy_file("ejabberd.yml.example", "#{ro}/etc/ejabberd/ejabberd.yml#{suffix}") - Mix.Generator.copy_file("ejabberdctl.cfg.example", "#{ro}/etc/ejabberd/ejabberdctl.cfg#{suffix}") - Mix.Generator.copy_file("inetrc", "#{ro}/etc/ejabberd/inetrc") + Mix.Generator.copy_file("ejabberd.yml.example", "#{ro}/conf/ejabberd.yml#{suffix}") + Mix.Generator.copy_file("ejabberdctl.cfg.example", "#{ro}/conf/ejabberdctl.cfg#{suffix}") + Mix.Generator.copy_file("inetrc", "#{ro}/conf/inetrc") Enum.each(File.ls!("sql"), fn x -> @@ -316,8 +318,6 @@ defmodule Ejabberd.MixProject do && File.cp_r!(source_dir, target_dir) end - Mix.Generator.create_directory("#{ro}/var/lib/ejabberd") - case Mix.env() do :dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh") _ -> :ok diff --git a/rebar.config b/rebar.config index 967ca4807..e3186a857 100644 --- a/rebar.config +++ b/rebar.config @@ -190,12 +190,12 @@ {sys_config, "./rel/sys.config"}, {vm_args, "./rel/vm.args"}, {overlay_vars, "vars.config"}, - {overlay, [{mkdir, "var/log/ejabberd"}, - {mkdir, "var/lib/ejabberd"}, - {mkdir, "etc/ejabberd"}, + {overlay, [{mkdir, "logs"}, + {mkdir, "database"}, + {mkdir, "conf"}, {copy, "rel/files/erl", "erts-\{\{erts_vsn\}\}/bin/erl"}, {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, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]} ]}. @@ -206,8 +206,8 @@ {include_src, true}, {generate_start_script, false}, {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"}]}]}]}, + {copy, "ejabberdctl.cfg.example", "conf/ejabberdctl.cfg"}, + {copy, "ejabberd.yml.example", "conf/ejabberd.yml"}]}]}]}, {dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]}, {relx, [{debug_info, keep}, {dev_mode, true}, @@ -215,10 +215,10 @@ {include_src, false}, {generate_start_script, true}, {extended_start_script, true}, - {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/"}]}]}]}, + {overlay, [{copy, "ejabberdctl.cfg.example", "conf/ejabberdctl.cfg.example"}, + {copy, "ejabberd.yml.example", "conf/ejabberd.yml.example"}, + {copy, "test/ejabberd_SUITE_data/ca.pem", "conf/"}, + {copy, "test/ejabberd_SUITE_data/cert.pem", "conf/"}]}]}]}, {test, [{erl_opts, [nowarn_export_all]}]}]}. {alias, [{relive, [{shell, "--apps ejabberd \ diff --git a/rel/reltool.config.script b/rel/reltool.config.script index 523cf9c76..ac3f5c7cb 100644 --- a/rel/reltool.config.script +++ b/rel/reltool.config.script @@ -88,15 +88,15 @@ Sys = [{lib_dirs, []}, end, OTPApps). Overlay = [ - {mkdir, "var/log/ejabberd"}, - {mkdir, "var/lib/ejabberd"}, - {mkdir, "etc/ejabberd"}, + {mkdir, "logs"}, + {mkdir, "database"}, + {mkdir, "conf"}, {mkdir, "doc"}, {template, "files/erl", "\{\{erts_vsn\}\}/bin/erl"}, {template, "../ejabberdctl.template", "bin/ejabberdctl"}, - {copy, "../ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, - {copy, "../ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}, - {copy, "../inetrc", "etc/ejabberd/inetrc"}, + {copy, "../ejabberdctl.cfg.example", "conf/ejabberdctl.cfg"}, + {copy, "../ejabberd.yml.example", "conf/ejabberd.yml"}, + {copy, "../inetrc", "conf/inetrc"}, {copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"} ], diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh index 8040f3dd0..79171ffe0 100755 --- a/rel/setup-dev.sh +++ b/rel/setup-dev.sh @@ -2,10 +2,10 @@ echo -n "===> Preparing dev configuration files: " PWD_DIR=`pwd` 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 -CON_DIR_TEMP=$REL_DIR_TEMP/etc/ejabberd/ +CON_DIR_TEMP=$REL_DIR_TEMP/conf/ BIN_DIR_TEMP=$REL_DIR_TEMP/bin/ cd $CON_DIR_TEMP diff --git a/rel/sys.config b/rel/sys.config index ff6f0f368..26b0d0c61 100644 --- a/rel/sys.config +++ b/rel/sys.config @@ -1,2 +1,2 @@ -[{ejabberd, [{config, "etc/ejabberd/ejabberd.yml"}, - {log_path, "var/log/ejabberd/ejabberd.log"}]}]. +[{ejabberd, [{config, "conf/ejabberd.yml"}, + {log_path, "logs/ejabberd.log"}]}]. diff --git a/rel/vm.args b/rel/vm.args index 29858b0dc..6301f464d 100644 --- a/rel/vm.args +++ b/rel/vm.args @@ -4,7 +4,7 @@ ## Cookie for distributed erlang #-setcookie ejabberd --mnesia dir \"var/lib/ejabberd\" +-mnesia dir \"database\" ## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive ## (Disabled by default..use with caution!) diff --git a/vars.config.in b/vars.config.in index ddfc5ddb5..e80e49782 100644 --- a/vars.config.in +++ b/vars.config.in @@ -59,6 +59,11 @@ {libdir, "{{release_dir}}/lib"}. {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@}. {system_deps, @system_deps@}.