libretime/easypanel/code/tools/update-config-files.sh
Cesar Jhoanny Mendivil Rubio 697b7cc288
Some checks are pending
Container / meta (analyzer) (push) Waiting to run
Container / meta (api) (push) Waiting to run
Container / meta (legacy) (push) Waiting to run
Container / meta (nginx) (push) Waiting to run
Container / meta (playout) (push) Waiting to run
Container / meta (worker) (push) Waiting to run
Container / build (push) Blocked by required conditions
Project / pre-commit (push) Waiting to run
Project / test-tools (push) Waiting to run
Release-Please / release-please (push) Waiting to run
feat(easypanel): actualizar configuración y scripts de EasyPanel, incluyendo mejoras en la generación de contraseñas, sincronización de herramientas y gestión de configuraciones
2025-10-01 17:41:20 -07:00

64 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Keep configuration files in sync with installer/config.yml.
set -u
error() {
echo >&2 "error: $*"
exit 1
}
command -v ed > /dev/null || error "ed command not found!"
CONFIG_ORIG_FILEPATH="installer/config.yml"
# set_config <value> <key...>
set_config() {
value="${1}" && shift
# Build sed query
query="/^${1}:/\n"
while [[ $# -gt 1 ]]; do
shift
query+="/${1}:/\n"
done
query+="s|\(${1}:\).*|\1 ${value}|\n"
query+="wq"
echo -e "$query" | ed --quiet "$CONFIG_FILEPATH" > /dev/null
}
set_docker_config() {
set_config "postgres" database host
set_config "rabbitmq" rabbitmq host
set_config "liquidsoap" playout liquidsoap_host
set_config "0.0.0.0" liquidsoap server_listen_address
set_config "icecast" stream outputs .default_icecast_output host
}
set_docker_config_template_vars() {
set_config "\${POSTGRES_PASSWORD}" database password
set_config "\${RABBITMQ_DEFAULT_PASS}" rabbitmq password
set_config "\${ICECAST_SOURCE_PASSWORD}" stream outputs .default_icecast_output source_password
set_config "\${ICECAST_ADMIN_PASSWORD}" stream outputs .default_icecast_output admin_password
}
CONFIG_FILEPATH="docker/config.yml"
cp "$CONFIG_ORIG_FILEPATH" "$CONFIG_FILEPATH"
set_docker_config
CONFIG_FILEPATH="docker/config.template.yml"
cp "$CONFIG_ORIG_FILEPATH" "$CONFIG_FILEPATH"
set_docker_config
set_docker_config_template_vars
CONFIG_FILEPATH="docker/example/config.yml"
cp "$CONFIG_ORIG_FILEPATH" "$CONFIG_FILEPATH"
set_docker_config
set_config "http://localhost:8080" general public_url
set_config "some_secret_api_key" general api_key