mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 18:06:09 +00:00
Fix: subshell capture bug - interactive menus invisible in $()
- All UI output (echo, printf) in interactive functions now goes to stderr (>&2) - Only return values go to stdout for $() capture - Affected: select_quick_domain, select_port, select_category, select_template, show_template_preview - Also fixed: log_*, confirm, select_option in common.sh
This commit is contained in:
@@ -37,12 +37,12 @@ DIM='\033[2m'
|
||||
NC='\033[0m'
|
||||
|
||||
# ── Логирование ──────────────────────────────────────────────────────────────
|
||||
log_info() { echo -e " ${CYAN}ℹ${NC} $*"; }
|
||||
log_success() { echo -e " ${GREEN}✓${NC} $*"; }
|
||||
log_warning() { echo -e " ${YELLOW}⚠${NC} $*"; }
|
||||
log_error() { echo -e " ${RED}✗${NC} $*"; }
|
||||
log_step() { echo -e "\n${BOLD}${WHITE} $*${NC}"; }
|
||||
log_dim() { echo -e " ${DIM}$*${NC}"; }
|
||||
log_info() { echo -e " ${CYAN}ℹ${NC} $*" >&2; }
|
||||
log_success() { echo -e " ${GREEN}✓${NC} $*" >&2; }
|
||||
log_warning() { echo -e " ${YELLOW}⚠${NC} $*" >&2; }
|
||||
log_error() { echo -e " ${RED}✗${NC} $*" >&2; }
|
||||
log_step() { echo -e "\n${BOLD}${WHITE} $*${NC}" >&2; }
|
||||
log_dim() { echo -e " ${DIM}$*${NC}" >&2; }
|
||||
|
||||
log_to_file() {
|
||||
local ts; ts=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
@@ -409,7 +409,7 @@ migrate_v1_to_v2() {
|
||||
# ── Подтверждение ────────────────────────────────────────────────────────────
|
||||
confirm() {
|
||||
local msg="${1:-Продолжить?}"
|
||||
echo -ne " ${msg} [Y/n]: "
|
||||
echo -ne " ${msg} [Y/n]: " >&2
|
||||
read -r ans
|
||||
[[ ! "$ans" =~ ^[Nn] ]]
|
||||
}
|
||||
@@ -420,16 +420,16 @@ select_option() {
|
||||
shift
|
||||
local options=("$@")
|
||||
|
||||
echo ""
|
||||
echo -e " ${BOLD}${WHITE}${title}${NC}"
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..50})${NC}"
|
||||
echo "" >&2
|
||||
echo -e " ${BOLD}${WHITE}${title}${NC}" >&2
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..50})${NC}" >&2
|
||||
local i=1
|
||||
for opt in "${options[@]}"; do
|
||||
echo -e " ${CYAN}${i})${NC} ${opt}"
|
||||
echo -e " ${CYAN}${i})${NC} ${opt}" >&2
|
||||
((i++))
|
||||
done
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..50})${NC}"
|
||||
echo -ne " ${WHITE}Выбор:${NC} "
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..50})${NC}" >&2
|
||||
echo -ne " ${WHITE}Выбор:${NC} " >&2
|
||||
read -r choice
|
||||
echo "$choice"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user