@@ -62,13 +62,117 @@ RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin"
62
62
63
63
[ " $NOTIFY_SOCKET " ] && RUNNING_UNDER_SYSTEMD=true
64
64
65
- set +e
65
+ if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
66
+ mkdir -p " ${RABBITMQ_SCHEMA_DIR} "
67
+ fi
68
+
69
+ if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
70
+ mkdir -p " ${RABBITMQ_GENERATED_CONFIG_DIR} "
71
+ fi
72
+
73
+ if [ ! -f " ${RABBITMQ_SCHEMA_DIR} /rabbit.schema" ]; then
74
+ cp " ${RABBITMQ_HOME} /priv/schema/rabbit.schema" " ${RABBITMQ_SCHEMA_DIR} "
75
+ fi
76
+
77
+ get_noex () {
78
+ if [ " x" = " x${1} " ]; then
79
+ echo " "
80
+ else
81
+ local BASENAME=$( basename $1 )
82
+ local DIRNAME=$( dirname $1 )
83
+ if [ " x." = " x${DIRNAME} " ]; then
84
+ echo " ${BASENAME% .* } "
85
+ else
86
+ echo " ${DIRNAME} /${BASENAME% .* } "
87
+ fi
88
+ fi
89
+ }
90
+
91
+ # Check that advanced config file has the .config extension
92
+ # Add .config extension if it's empty
93
+
94
+ RABBITMQ_ADVANCED_CONFIG_FILE_NOEX=$( get_noex ${RABBITMQ_ADVANCED_CONFIG_FILE} )
95
+ if [ " ${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX} .config" = " ${RABBITMQ_ADVANCED_CONFIG_FILE} " \
96
+ -o " ${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX} " = " ${RABBITMQ_ADVANCED_CONFIG_FILE} " ]; then
97
+ RABBITMQ_ADVANCED_CONFIG_FILE=" ${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX} .config"
98
+ fi
99
+
100
+
101
+ RABBITMQ_CONFIG_FILE_NOEX=$( get_noex ${RABBITMQ_CONFIG_FILE} )
102
+ # Extension is not specified.
103
+ # Determine config type from file
104
+
105
+ if [ " ${RABBITMQ_CONFIG_FILE_NOEX} " = " ${RABBITMQ_CONFIG_FILE} " ]; then
106
+ if [ -f " ${RABBITMQ_CONFIG_FILE_NOEX} .config" ]; then
107
+ if [ -f " ${RABBITMQ_CONFIG_FILE_NOEX} .conf" ]; then
108
+ # Both files exist. Print a warning
109
+ echo " WARNING: Both old (.config) and new (.conf) format config files exist."
110
+ echo " WARNING: Using the old format config file: ${RABBITMQ_CONFIG_FILE_NOEX} .config"
111
+ echo " WARNING: Please update your config files to the new format and remove the old file"
112
+ fi
113
+ RABBITMQ_CONFIG_FILE=" ${RABBITMQ_CONFIG_FILE_NOEX} .config"
114
+ elif [ -f " ${RABBITMQ_CONFIG_FILE_NOEX} .conf" ]; then
115
+ RABBITMQ_CONFIG_FILE=" ${RABBITMQ_CONFIG_FILE_NOEX} .conf"
116
+ else
117
+ if [ -f ${RABBITMQ_ADVANCED_CONFIG_FILE} ]; then
118
+ echo " WARNING: Using RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE} "
119
+ fi
120
+ # No config file exist. Use advanced config for -config arg.
121
+ RABBITMQ_CONFIG_ARG_FILE=" ${RABBITMQ_ADVANCED_CONFIG_FILE} "
122
+ RABBITMQ_CONFIG_FILE=" "
123
+ fi
124
+ fi
125
+
126
+ # Set the -config argument.
127
+ # The -config argument should not have extension.
128
+ # the file should exist
129
+ # the file should be a valid erlang term file
130
+
131
+ # Config file extension is .config
132
+ if [ " ${RABBITMQ_CONFIG_FILE_NOEX} .config" = " ${RABBITMQ_CONFIG_FILE} " ]; then
133
+ RABBITMQ_CONFIG_ARG_FILE=" ${RABBITMQ_CONFIG_FILE} "
134
+ # Config file extension is .conf
135
+ elif [ " ${RABBITMQ_CONFIG_FILE_NOEX} .conf" = " ${RABBITMQ_CONFIG_FILE} " ]; then
136
+ RABBITMQ_CONFIG_ARG_FILE=" ${RABBITMQ_ADVANCED_CONFIG_FILE} "
137
+ elif [ " x" != " x${RABBITMQ_CONFIG_FILE} " \
138
+ -a " ${RABBITMQ_CONFIG_FILE_NOEX} " != " ${RABBITMQ_CONFIG_FILE} " ]; then
139
+ # Config file has an extension, but it's neither .conf or .config
140
+ echo " ERROR: Wrong extension for RABBITMQ_CONFIG_FILE: ${RABBITMQ_CONFIG_FILE} "
141
+ echo " ERROR: extension should be either .conf or .config"
142
+ exit 1
143
+ fi
144
+
145
+ RABBITMQ_CONFIG_ARG_FILE_NOEX=$( get_noex ${RABBITMQ_CONFIG_ARG_FILE} )
146
+
147
+ if [ " ${RABBITMQ_CONFIG_ARG_FILE_NOEX} .config" != " ${RABBITMQ_CONFIG_ARG_FILE} " ]; then
148
+ if [ " ${RABBITMQ_CONFIG_ARG_FILE} " = " ${RABBITMQ_ADVANCED_CONFIG_FILE} " ]; then
149
+ echo " ERROR: Wrong extension for RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE} "
150
+ echo " ERROR: extension should be .config"
151
+ exit 1
152
+ else
153
+ # We should never got here, but still there should be some explanation
154
+ echo " ERROR: Wrong extension for ${RABBITMQ_CONFIG_ARG_FILE} "
155
+ echo " ERROR: extension should be .config"
156
+ exit 1
157
+ fi
158
+ fi
66
159
67
- RABBITMQ_ADVANCED_CONFIG_FILE_NOEX= " ${RABBITMQ_ADVANCED_CONFIG_FILE % . * } "
68
- if [ " ${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX} .config " = " ${RABBITMQ_ADVANCED_CONFIG_FILE } " ]; then
69
- RABBITMQ_ADVANCED_CONFIG_FILE= " ${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX }"
160
+ # Set -config if the file exists
161
+ if [ -f " ${RABBITMQ_CONFIG_ARG_FILE } " ]; then
162
+ RABBITMQ_CONFIG_ARG= " -config ${RABBITMQ_CONFIG_ARG_FILE_NOEX }"
70
163
fi
71
164
165
+ # Set -conf and other generated config parameters
166
+ if [ " ${RABBITMQ_CONFIG_FILE_NOEX} .conf" = " ${RABBITMQ_CONFIG_FILE} " ]; then
167
+ RABBITMQ_GENERATED_CONFIG_ARG=" -conf ${RABBITMQ_CONFIG_FILE} \
168
+ -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
169
+ -conf_script_dir ` dirname $0 ` \
170
+ -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}
171
+ -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} "
172
+ fi
173
+
174
+ set +e
175
+
72
176
# `net_kernel:start/1` will fail in `longnames` mode when erlang is
73
177
# unable to determine FQDN of a node (with a dot in it). But `erl`
74
178
# itself has some magic that still allow it to start when you
@@ -108,18 +212,6 @@ else
108
212
exit ${PRELAUNCH_RESULT}
109
213
fi
110
214
111
- if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
112
- mkdir -p " ${RABBITMQ_SCHEMA_DIR} "
113
- fi
114
-
115
- if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
116
- mkdir -p " ${RABBITMQ_GENERATED_CONFIG_DIR} "
117
- fi
118
-
119
- if [ ! -f " ${RABBITMQ_SCHEMA_DIR} /rabbit.schema" ]; then
120
- cp " ${RABBITMQ_HOME} /priv/schema/rabbit.schema" " ${RABBITMQ_SCHEMA_DIR} "
121
- fi
122
-
123
215
# The default allocation strategy RabbitMQ is using was introduced
124
216
# in Erlang/OTP 20.2.3. Earlier Erlang versions fail to start with
125
217
# this configuration. We therefore need to ensure that erl accepts
141
233
142
234
set -e
143
235
144
- RABBITMQ_CONFIG_FILE_NOEX=" ${RABBITMQ_CONFIG_FILE% .* } "
145
-
146
- if [ " ${RABBITMQ_CONFIG_FILE_NOEX} .config" = " ${RABBITMQ_CONFIG_FILE} " ]; then
147
- if [ -f " ${RABBITMQ_CONFIG_FILE} " ]; then
148
- RABBITMQ_CONFIG_ARG=" -config ${RABBITMQ_CONFIG_FILE_NOEX} "
149
- fi
150
- elif [ " ${RABBITMQ_CONFIG_FILE_NOEX} .conf" = " ${RABBITMQ_CONFIG_FILE} " ]; then
151
- RABBITMQ_CONFIG_ARG=" -conf ${RABBITMQ_CONFIG_FILE_NOEX} \
152
- -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
153
- -conf_script_dir ` dirname $0 ` \
154
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR} "
155
- if [ -f " ${RABBITMQ_ADVANCED_CONFIG_FILE} .config" ]; then
156
- RABBITMQ_CONFIG_ARG=" ${RABBITMQ_CONFIG_ARG} \
157
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
158
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE} "
159
- fi
160
- else
161
- if [ -f " ${RABBITMQ_CONFIG_FILE} .config" ]; then
162
- RABBITMQ_CONFIG_ARG=" -config ${RABBITMQ_CONFIG_FILE} "
163
- elif [ -f " ${RABBITMQ_CONFIG_FILE} .conf" ]; then
164
- RABBITMQ_CONFIG_ARG=" -conf ${RABBITMQ_CONFIG_FILE} \
165
- -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
166
- -conf_script_dir ` dirname $0 ` \
167
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR} "
168
- if [ -f " ${RABBITMQ_ADVANCED_CONFIG_FILE} .config" ]; then
169
- RABBITMQ_CONFIG_ARG=" ${RABBITMQ_CONFIG_ARG} \
170
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
171
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE} "
172
- fi
173
- fi
174
- fi
175
-
176
236
RABBITMQ_LISTEN_ARG=
177
237
[ " x" != " x$RABBITMQ_NODE_PORT " ] && [ " x" != " x$RABBITMQ_NODE_IP_ADDRESS " ] && RABBITMQ_LISTEN_ARG=" -rabbit tcp_listeners [{\" " ${RABBITMQ_NODE_IP_ADDRESS} " \" ," ${RABBITMQ_NODE_PORT} " }]"
178
238
@@ -230,6 +290,7 @@ start_rabbitmq_server() {
230
290
${RABBITMQ_NAME_TYPE} ${RABBITMQ_NODENAME} \
231
291
-boot " ${SASL_BOOT_FILE} " \
232
292
${RABBITMQ_CONFIG_ARG} \
293
+ ${RABBITMQ_GENERATED_CONFIG_ARG} \
233
294
+W w \
234
295
+A ${RABBITMQ_IO_THREAD_POOL_SIZE} \
235
296
${RABBITMQ_DEFAULT_ALLOC_ARGS} \
0 commit comments