f7hpb.sh: передача переменных аргументами KEY=value
This commit is contained in:
parent
7a1d7c73da
commit
61d7230aad
24
f7hpb.sh
24
f7hpb.sh
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user