Загрузка данных


#!/usr/bin/env bash

# ═══════════════════════════════════════════════════════════════
# Общие цвета и функции вывода
#
# Используется другими модулями:
#   - check-root.sh
#   - ensure-executable.sh
#   - set-locale.sh
#   - ask-yes-no.sh
#   - ask-reboot.sh
#
# Подключение:
#
#   source "${SCRIPT_DIR}/lib/common-colors.sh"
# ═══════════════════════════════════════════════════════════════


# ═══════════════════════════════════════════════════════════════
# Основные цвета
# ═══════════════════════════════════════════════════════════════

RD=$(echo "\033[01;31m")
YW=$(echo "\033[33m")
GN=$(echo "\033[1;92m")
BL=$(echo "\033[1;34m")
CL=$(echo "\033[m")


# ═══════════════════════════════════════════════════════════════
# Дополнительные цвета
# ═══════════════════════════════════════════════════════════════

GREEN="\e[32m"
RED="\e[31m"
YELLOW="\e[33m"
BLUE="\e[34m"
NC="\e[0m"


# ═══════════════════════════════════════════════════════════════
# Символы
# ═══════════════════════════════════════════════════════════════

BFR="\\r\\033[K"
HOLD="-"

CM="${GN}✓${CL}"
CROSS="${RD}✗${CL}"
ARROW="${BL}➜${CL}"


# ═══════════════════════════════════════════════════════════════
# Информационное сообщение
# ═══════════════════════════════════════════════════════════════

msg_info() {
    local msg="$1"

    echo -ne " ${HOLD} ${YW}${msg}..."
}


# ═══════════════════════════════════════════════════════════════
# Успешное выполнение
# ═══════════════════════════════════════════════════════════════

msg_ok() {
    local msg="$1"

    echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
}


# ═══════════════════════════════════════════════════════════════
# Ошибка
# ═══════════════════════════════════════════════════════════════

msg_error() {
    local msg="$1"

    echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
}


# ═══════════════════════════════════════════════════════════════
# Вывод шага
#
# Использование:
#
#   MSG_STEP_TOTAL=5
#   msg_step "1" "Проверка root"
#
# Или:
#
#   msg_step "1" "Проверка root" 5
# ═══════════════════════════════════════════════════════════════

msg_step() {
    local num="$1"
    local msg="$2"
    local total="${3:-${MSG_STEP_TOTAL:-}}"

    if [ -n "$total" ]; then
        echo -e "\n ${BL}[${num}/${total}]${CL} ${YW}${msg}${CL}"
    else
        echo -e "\n ${BL}[${num}]${CL} ${YW}${msg}${CL}"
    fi
}


# ═══════════════════════════════════════════════════════════════
# Дополнительные сообщения
# ═══════════════════════════════════════════════════════════════

pass() {
    echo -e " ${CM} ${GREEN}[ OK ]${NC} $1"
}

warn() {
    echo -e " ${YW}!${CL} ${YELLOW}[WARN]${NC} $1"
}

fail() {
    echo -e " ${CROSS} ${RED}[FAIL]${NC} $1"
}

info() {
    echo -e " ${ARROW} ${BLUE}[INFO]${NC} $1"
}