nginx: fix problem with migration of uci conf template
Fix some problem with migration of uci conf template and include of module.d directive. Fix 2 case: - uci.conf.template not versioned but with the include module.d resulting in double include module.d - uci.conf.template version 1.1 with the include module.d at the end of the config. This is problematic for nginx as modules must be included before any http directive. Handle this 2 case to restore a working uci.conf.template configuration on migrated config. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
parent
15271cb467
commit
add3cbfcd3
2 changed files with 19 additions and 4 deletions
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=nginx
|
||||
PKG_VERSION:=1.24.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://nginx.org/download/
|
||||
|
|
|
@ -9,7 +9,7 @@ G_OPTS="daemon off;"
|
|||
|
||||
NGINX_UTIL="/usr/bin/nginx-util"
|
||||
UCI_CONF_TEMPLATE="/etc/nginx/uci.conf.template"
|
||||
LATEST_UCI_CONF_VERSION="1.1"
|
||||
LATEST_UCI_CONF_VERSION="1.2"
|
||||
|
||||
eval $("${NGINX_UTIL}" get_env)
|
||||
|
||||
|
@ -23,10 +23,25 @@ nginx_check_luci_template() {
|
|||
return
|
||||
fi
|
||||
|
||||
# Fix wrong entry for the module.d include
|
||||
if [ "$UCI_CONF_VERSION" = "1.1" ]; then
|
||||
# Remove any entry
|
||||
sed -i '/^include module\.d\/\*\.module;/d' $UCI_CONF_TEMPLATE
|
||||
# Put the include before events {}
|
||||
sed -i 's/events {/include module.d\/*.module;\n\nevents {/' $UCI_CONF_TEMPLATE
|
||||
fi
|
||||
|
||||
if [ "$UCI_CONF_VERSION" != "$LATEST_UCI_CONF_VERSION" ]; then
|
||||
sed -i "s/# UCI_CONF_VERSION=.*/# UCI_CONF_VERSION=$LATEST_UCI_CONF_VERSION/" $UCI_CONF_TEMPLATE
|
||||
fi
|
||||
|
||||
if [ -z "$UCI_CONF_VERSION" ]; then
|
||||
# Handle funny case with template with the include module but no version
|
||||
if ! grep -q -e '^include module\.d/\*\.module;$' $UCI_CONF_TEMPLATE; then
|
||||
sed -i 's/events {/include module.d\/*.module;\n\nevents {/' $UCI_CONF_TEMPLATE
|
||||
fi
|
||||
echo "" >> $UCI_CONF_TEMPLATE
|
||||
echo "include module.d/*.module;" >> $UCI_CONF_TEMPLATE
|
||||
echo "# UCI_CONF_VERSION=1.1" >> $UCI_CONF_TEMPLATE
|
||||
echo "# UCI_CONF_VERSION=1.2" >> $UCI_CONF_TEMPLATE
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue