f7hpb.sh: передача переменных аргументами KEY=value

This commit is contained in:
root 2026-03-16 05:19:56 +00:00
parent 7a1d7c73da
commit 61d7230aad

View File

@ -1,7 +1,7 @@
#!/bin/bash
# Установка F7_HPB (signaling, конфиг, systemd). Запускается на сервере HPB.
# Использование: ./f7hpb.sh [/path/to/f7cloud-install.env]
# Переменные можно передать через env-файл или ввести в диалоге, если не заданы.
# Использование: ./f7hpb.sh [/path/to/f7cloud-install.env] [KEY=value ...]
# Переменные: из env-файла, из аргументов KEY=value (переопределяют файл), или ввод в диалоге.
set -e
ROLE="f7hpb"
@ -33,8 +33,19 @@ get_var_optional() {
fi
}
# Путь к env-файлу: аргумент скрипта или запрос
# Аргументы: 1-й — путь к env-файлу, остальные — KEY=value (переменные переопределяют env-файл)
ENV_FILE="${1:-}"
shift 2>/dev/null || true
CLI_ARGS=("$@")
# Применяем KEY=value из аргументов (чтобы ENV_FILE мог быть передан как ENV_FILE=path)
for arg in "${CLI_ARGS[@]}"; do
if [[ "$arg" == *=* ]]; then
export "$arg"
[[ "$arg" == ENV_FILE=* ]] && ENV_FILE="${arg#ENV_FILE=}"
fi
done
get_var ENV_FILE "Путь к файлу конфигурации (например /path/to/f7cloud-install.env)"
if [ ! -f "$ENV_FILE" ]; then
@ -44,7 +55,12 @@ fi
# shellcheck source=/dev/null
set -a && source "$ENV_FILE" && set +a
# Переменные из env или диалог, если не переданы
# Аргументы KEY=value переопределяют переменные из env-файла
for arg in "${CLI_ARGS[@]}"; do
[[ "$arg" == *=* ]] && export "$arg"
done
# Переменные из env/аргументов или диалог, если не заданы
get_var HPB_HASHKEY "HPB hashkey"
get_var HPB_BLOCKKEY "HPB blockkey"
get_var HPB_INTERNAL_SECRET "HPB internal_secret"