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