mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 21:26:04 +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:
@@ -46,9 +46,9 @@ get_template_field() {
|
||||
select_category() {
|
||||
load_catalog || return 1
|
||||
|
||||
echo ""
|
||||
echo -e " ${BOLD}${WHITE}📂 Категории шаблонов сайтов:${NC}"
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}"
|
||||
echo "" >&2
|
||||
echo -e " ${BOLD}${WHITE}📂 Категории шаблонов сайтов:${NC}" >&2
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}" >&2
|
||||
|
||||
local cats=()
|
||||
local i=1
|
||||
@@ -67,14 +67,14 @@ select_category() {
|
||||
chart-bar) emoji="🔧" ;;
|
||||
*) emoji="📄" ;;
|
||||
esac
|
||||
printf " ${CYAN}%2d)${NC} ${emoji} %-30s ${DIM}(%d шаблонов)${NC}\n" "$i" "$name" "$count"
|
||||
printf " ${CYAN}%2d)${NC} ${emoji} %-30s ${DIM}(%d шаблонов)${NC}\n" "$i" "$name" "$count" >&2
|
||||
cats+=("$id")
|
||||
((i++))
|
||||
done < <(get_categories)
|
||||
|
||||
printf " ${CYAN}%2d)${NC} 🎲 Случайный шаблон\n" "$i"
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}"
|
||||
echo -ne " ${WHITE}Выбор:${NC} "
|
||||
printf " ${CYAN}%2d)${NC} 🎲 Случайный шаблон\n" "$i" >&2
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}" >&2
|
||||
echo -ne " ${WHITE}Выбор:${NC} " >&2
|
||||
read -r choice
|
||||
|
||||
# Случайный
|
||||
@@ -99,14 +99,14 @@ select_template() {
|
||||
local cat_name
|
||||
cat_name=$(get_category_name "$cat_id")
|
||||
|
||||
echo ""
|
||||
echo -e " ${BOLD}${WHITE}📋 $cat_name — доступные шаблоны:${NC}"
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..60})${NC}"
|
||||
echo "" >&2
|
||||
echo -e " ${BOLD}${WHITE}📋 $cat_name — доступные шаблоны:${NC}" >&2
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..60})${NC}" >&2
|
||||
|
||||
local tpls=()
|
||||
local i=1
|
||||
while IFS='|' read -r id name source preview; do
|
||||
printf " ${CYAN}%2d)${NC} %-30s ${DIM}[%s]${NC}\n" "$i" "$name" "$source"
|
||||
printf " ${CYAN}%2d)${NC} %-30s ${DIM}[%s]${NC}\n" "$i" "$name" "$source" >&2
|
||||
tpls+=("$id")
|
||||
((i++))
|
||||
done < <(get_templates_by_category "$cat_id")
|
||||
@@ -116,8 +116,8 @@ select_template() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..60})${NC}"
|
||||
echo -ne " ${WHITE}Выбор (1-$((i-1))):${NC} "
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..60})${NC}" >&2
|
||||
echo -ne " ${WHITE}Выбор (1-$((i-1))):${NC} " >&2
|
||||
read -r choice
|
||||
|
||||
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -lt "$i" ]; then
|
||||
@@ -147,21 +147,21 @@ show_template_preview() {
|
||||
repo_url=$(echo "$info" | jq -r '.repo_url // empty')
|
||||
description=$(echo "$info" | jq -r '.description // "—"')
|
||||
|
||||
echo ""
|
||||
echo -e " ${BOLD}${WHITE}🔍 Превью шаблона:${NC}"
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}"
|
||||
echo -e " ${WHITE}Название:${NC} $name"
|
||||
echo -e " ${WHITE}Источник:${NC} $source"
|
||||
echo -e " ${WHITE}Описание:${NC} $description"
|
||||
echo "" >&2
|
||||
echo -e " ${BOLD}${WHITE}🔍 Превью шаблона:${NC}" >&2
|
||||
echo -e " ${DIM}$(printf '─%.0s' {1..55})${NC}" >&2
|
||||
echo -e " ${WHITE}Название:${NC} $name" >&2
|
||||
echo -e " ${WHITE}Источник:${NC} $source" >&2
|
||||
echo -e " ${WHITE}Описание:${NC} $description" >&2
|
||||
|
||||
if [ -n "$preview_url" ]; then
|
||||
echo ""
|
||||
echo -e " ${GREEN}👁 Превью:${NC} ${CYAN}${preview_url}${NC}"
|
||||
echo -e " ${DIM}Откройте ссылку в браузере для просмотра шаблона${NC}"
|
||||
echo "" >&2
|
||||
echo -e " ${GREEN}👁 Превью:${NC} ${CYAN}${preview_url}${NC}" >&2
|
||||
echo -e " ${DIM}Откройте ссылку в браузере для просмотра шаблона${NC}" >&2
|
||||
fi
|
||||
|
||||
if [ -n "$repo_url" ]; then
|
||||
echo -e " ${DIM}📦 Репо: ${repo_url}${NC}"
|
||||
echo -e " ${DIM}📦 Репо: ${repo_url}${NC}" >&2
|
||||
fi
|
||||
|
||||
# Благодарность автору
|
||||
|
||||
Reference in New Issue
Block a user