You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
container-overlay/profiles/templates/taiga/taiga/sh.setup-taiga

165 lines
3.7 KiB

# Calculate path=/var/calculate/bin name=#-cut(1,.)-# chmod=755 comment=#
#!/bin/bash
export PATH="/lib/rc/bin:$PATH"
set -ueo pipefail
source /var/calculate/config/taiga
replace=(
"taiga-back/settings/config.py" ""
"('PASSWORD':).*" "\1 '${PGSQL_PASSWORD}',"
"^.*(SECRET_KEY =).*" "\1 \"${SECRET_KEY}\""
"^.*(TAIGA_SITES_SCHEME =).*" "\1 \"${PROTOCOL}\""
"^.*(TAIGA_SITES_DOMAIN =).*" "\1 \"${TAIGA_SITES_DOMAIN}\""
"^.*(MEDIA_ROOT =).*" "\1 '/var/calculate/www/taiga/taiga-back/media'"
"^.*(DEFAULT_FROM_EMAIL =).*" "\1 '${FROM_EMAIL}'"
"^.*(EMAIL_USE_TLS =).*" "\1 '${SMTP_TLS}'"
"^.*(EMAIL_USE_SSL =).*" "\1 '${SMTP_SSL}'"
"^.*(EMAIL_HOST =).*" "\1 '${SMTP_HOST}'"
"^.*(EMAIL_PORT =).*" "\1 ${SMTP_PORT}"
"^.*(EMAIL_HOST_USER =).*" "\1 '${SMTP_USER}'"
"^.*(EMAIL_HOST_PASSWORD =).*" "\1 '${SMTP_PASSWORD}'"
"(\"url\": \"amqp://).*(:5672/taiga\")" "\1${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@localhost\2"
"^.*(CELERY_BROKER_URL =).*" "\1 \"amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@localhost:5672/taiga\""
"^.*(CELERY_TIMEZONE =).*" "\1 'Europe/Moscow'"
"^.*(ENABLE_TELEMETRY =).*" "\1 False"
"^.*(PUBLIC_REGISTER_ENABLED =).*" "\1 True"
"taiga-front-dist/dist/conf.json" ""
"(\"api\":).*" "\1 \"${PROTOCOL}://${TAIGA_SITES_DOMAIN}/api/v1/\","
"(\"eventsUrl\":).*" "\1 \"wss://${TAIGA_SITES_DOMAIN}/events\","
"(\"defaultLanguage\":).*" "\1 \"ru\","
"(\"publicRegisterEnabled\":).*" "\1 true,"
"(\"supportUrl\":).*" "\1 \"${PROTOCOL}://${TAIGA_SITES_DOMAIN}\","
"(\"gravatar\":).*" "\1 false,"
"taiga-events/.env" ""
"^.*(RABBITMQ_URL=).*" "\1\"amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@localhost:5672/taiga\""
"^.*(SECRET=).*" "\1\"${SECRET_KEY}\""
"taiga-protected/.env" ""
"^.*(SECRET_KEY=).*" "\1\"${SECRET_KEY}\""
)
homedir=/var/calculate/www/taiga
if [[ -d $homedir ]]
then
cd $homedir
else
eerror "Отсутствует директория $homedir!"
exit 1
fi
check_conf(){
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
conf=$from
continue
fi
if [[ ! -e $conf ]]
then
eerror "Не найден файл ~/taiga/$conf. Установите Taiga выполнив 'install-taiga'."
exit 2
fi
grep -qE "$from" $conf || exit 1
done
}
check_show(){
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
conf=$from
echo "$conf"
continue
fi
err=0
grep -qE "$from" $conf || err=1
if [[ $err == 0 ]]
then
einfo $from
else
eerror $from || true
fi
eend $err || true
done
}
configure_conf(){
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
if [[ $conf != '' ]]
then
eend
fi
conf=$from
ebegin $conf
continue
fi
sed -i -E "s|$from|$to|g" $conf
done
eend
}
show_conf(){
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
conf=$from
echo '#-------------------------------------------------------------------------'
echo " $conf"
echo '#-------------------------------------------------------------------------'
continue
fi
grep -E "$from" $conf
done
}
ebegin 'Проверка настраиваемых переменных'
`check_conf` || {
if [[ $? == 1 ]]
then
check_show
fi
exit
}
eend
einfo 'Настройка конфигурационных файлов:'
configure_conf
if [[ $# == 0 ]]
then
einfo "Для отображения настроенных опций выполните '$0 show'."
else
einfo 'Настроенные параметры:'
show_conf
fi