|
|
@ -117,523 +117,6 @@ fn_print_nl() { |
|
|
|
echo -e "$*${default}" |
|
|
|
} |
|
|
|
|
|
|
|
# Helper function to print messages with a specific format and color |
|
|
|
fn_print_message() { |
|
|
|
local type="$1" |
|
|
|
local color="$2" |
|
|
|
local message="$3" |
|
|
|
if [ "${commandaction}" ]; then |
|
|
|
echo -en "${bold}${creeol}[${color} ${type} ${default}]${default} ${commandaction} ${selfname}: ${message}${default}" |
|
|
|
else |
|
|
|
echo -en "${bold}${creeol}[${color} ${type} ${default}]${default} ${message}${default}" |
|
|
|
fi |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_message_nl() { |
|
|
|
local type="$1" |
|
|
|
local color="$2" |
|
|
|
local message="$3" |
|
|
|
if [ "${commandaction}" ]; then |
|
|
|
echo -e "${bold}${creeol}[${color} ${type} ${default}]${default} ${commandaction} ${selfname}: ${message}${default}" |
|
|
|
else |
|
|
|
echo -e "${bold}${creeol}[${color} ${type} ${default}]${default} ${message}${default}" |
|
|
|
fi |
|
|
|
fn_sleep_time |
|
|
|
echo -en "\n" |
|
|
|
} |
|
|
|
|
|
|
|
# [ .... ] |
|
|
|
fn_print_dots() { |
|
|
|
fn_print_message "...." "${default}" "$*" |
|
|
|
fn_sleep_time_05 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_dots_nl() { |
|
|
|
fn_print_message_nl "...." "${default}" "$*" |
|
|
|
fn_sleep_time_05 |
|
|
|
} |
|
|
|
|
|
|
|
# [ OK ] |
|
|
|
fn_print_ok() { |
|
|
|
fn_print_message " OK " "${green}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_ok_nl() { |
|
|
|
fn_print_message_nl " OK " "${green}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# [ FAIL ] |
|
|
|
fn_print_fail() { |
|
|
|
fn_print_message "FAIL" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_fail_nl() { |
|
|
|
fn_print_message_nl "FAIL" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# [ ERROR ] |
|
|
|
fn_print_error() { |
|
|
|
fn_print_message "ERROR" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_error_nl() { |
|
|
|
fn_print_message_nl "ERROR" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# [ WARN ] |
|
|
|
fn_print_warn() { |
|
|
|
fn_print_message "WARN" "${lightyellow}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_warn_nl() { |
|
|
|
fn_print_message_nl "WARN" "${lightyellow}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# [ INFO ] |
|
|
|
fn_print_info() { |
|
|
|
fn_print_message "INFO" "${cyan}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_info_nl() { |
|
|
|
fn_print_message_nl "INFO" "${cyan}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# [ START ] |
|
|
|
fn_print_start() { |
|
|
|
fn_print_message "START" "${lightgreen}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_start_nl() { |
|
|
|
fn_print_message_nl "START" "${lightgreen}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# On-Screen - Interactive messages |
|
|
|
################################## |
|
|
|
|
|
|
|
# Separator is different for details. |
|
|
|
fn_messages_separator() { |
|
|
|
if [ "${commandname}" == "DETAILS" ]; then |
|
|
|
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' = |
|
|
|
else |
|
|
|
echo -e "${bold}=================================${default}" |
|
|
|
fi |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# No More Room in Hell Debug |
|
|
|
# ================================= |
|
|
|
fn_print_header() { |
|
|
|
echo -e "" |
|
|
|
echo -e "${bold}${lightyellow}${gamename} ${commandaction}${default}" |
|
|
|
fn_messages_separator |
|
|
|
} |
|
|
|
|
|
|
|
# Complete! |
|
|
|
fn_print_complete() { |
|
|
|
fn_print_message "Complete!" "${green}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_complete_nl() { |
|
|
|
fn_print_message_nl "Complete!" "${green}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# Failure! |
|
|
|
fn_print_failure() { |
|
|
|
fn_print_message "Failure!" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_failure_nl() { |
|
|
|
fn_print_message_nl "Failure!" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# Error! |
|
|
|
fn_print_error2() { |
|
|
|
fn_print_message "Error!" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_error2_nl() { |
|
|
|
fn_print_message_nl "Error!" "${red}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# Warning! |
|
|
|
fn_print_warning() { |
|
|
|
fn_print_message "Warning!" "${lightyellow}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_warning_nl() { |
|
|
|
fn_print_message_nl "Warning!" "${lightyellow}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# Information! |
|
|
|
fn_print_information() { |
|
|
|
fn_print_message "Information!" "${cyan}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_information_nl() { |
|
|
|
fn_print_message_nl "Information!" "${cyan}" "$*" |
|
|
|
} |
|
|
|
|
|
|
|
# Y/N Prompt |
|
|
|
fn_prompt_yn() { |
|
|
|
echo -e "" |
|
|
|
local prompt="$1" |
|
|
|
local initial="$2" |
|
|
|
|
|
|
|
if [ "${initial}" == "Y" ]; then |
|
|
|
prompt+=" [Y/n] " |
|
|
|
elif [ "${initial}" == "N" ]; then |
|
|
|
prompt+=" [y/N] " |
|
|
|
else |
|
|
|
prompt+=" [y/n] " |
|
|
|
fi |
|
|
|
|
|
|
|
while true; do |
|
|
|
read -e -i "${initial}" -p "${prompt}" -r yn |
|
|
|
case "${yn}" in |
|
|
|
[Yy] | [Yy][Ee][Ss]) return 0 ;; |
|
|
|
[Nn] | [Nn][Oo]) return 1 ;; |
|
|
|
*) echo -e "Please answer yes or no." ;; |
|
|
|
esac |
|
|
|
done |
|
|
|
} |
|
|
|
|
|
|
|
# Prompt for message |
|
|
|
fn_prompt_message() { |
|
|
|
while true; do |
|
|
|
unset prompt |
|
|
|
local prompt="$1" |
|
|
|
read -e -p "${prompt}" -r answer |
|
|
|
if fn_prompt_yn "Continue" Y; then |
|
|
|
break |
|
|
|
fi |
|
|
|
done |
|
|
|
echo "${answer}" |
|
|
|
} |
|
|
|
|
|
|
|
# On-Screen End of Line |
|
|
|
################################## |
|
|
|
|
|
|
|
# YES |
|
|
|
fn_print_yes_eol() { |
|
|
|
echo -en " ... ${cyan}YES${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_yes_eol_nl() { |
|
|
|
echo -e " ... ${cyan}YES${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# NO |
|
|
|
fn_print_no_eol() { |
|
|
|
echo -en " ... ${red}NO${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_no_eol_nl() { |
|
|
|
echo -e " ... ${red}NO${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# OK |
|
|
|
fn_print_ok_eol() { |
|
|
|
echo -en " ... ${green}OK${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_ok_eol_nl() { |
|
|
|
echo -e " ... ${green}OK${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# FAIL |
|
|
|
fn_print_fail_eol() { |
|
|
|
echo -en " ... ${red}FAIL${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_fail_eol_nl() { |
|
|
|
echo -e " ... ${red}FAIL${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# ERROR |
|
|
|
fn_print_error_eol() { |
|
|
|
echo -en " ... ${red}ERROR${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_error_eol_nl() { |
|
|
|
echo -e " ... ${red}ERROR${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# WAIT |
|
|
|
fn_print_wait_eol() { |
|
|
|
echo -en " ... ${cyan}WAIT${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_wait_eol_nl() { |
|
|
|
echo -e " ... ${cyan}WAIT${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# WARN |
|
|
|
fn_print_warn_eol() { |
|
|
|
echo -en " ... ${lightyellow}WARN${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_warn_eol_nl() { |
|
|
|
echo -e " ... ${lightyellow}WARN${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# INFO |
|
|
|
fn_print_info_eol() { |
|
|
|
echo -en " ... ${cyan}INFO${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_info_eol_nl() { |
|
|
|
echo -e " ... ${cyan}INFO${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# QUERYING |
|
|
|
fn_print_querying_eol() { |
|
|
|
echo -en " ... ${cyan}QUERYING${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_querying_eol_nl() { |
|
|
|
echo -e " ... ${cyan}QUERYING${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
# CHECKING |
|
|
|
fn_print_checking_eol() { |
|
|
|
echo -en " ... ${cyan}CHECKING${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_checking_eol_nl() { |
|
|
|
echo -e " ... ${cyan}CHECKING${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
# DELAY |
|
|
|
fn_print_delay_eol() { |
|
|
|
echo -en " ... ${green}DELAY${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_delay_eol_nl() { |
|
|
|
echo -e " ... ${green}DELAY${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
# CANCELED |
|
|
|
fn_print_canceled_eol() { |
|
|
|
echo -en " ... ${lightyellow}CANCELED${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_canceled_eol_nl() { |
|
|
|
echo -e " ... ${lightyellow}CANCELED${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
# REMOVED |
|
|
|
fn_print_removed_eol() { |
|
|
|
echo -en " ... ${red}REMOVED${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_removed_eol_nl() { |
|
|
|
echo -e " ... ${red}REMOVED${default}" |
|
|
|
fn_sleep_time_1 |
|
|
|
} |
|
|
|
|
|
|
|
# UPDATE |
|
|
|
fn_print_update_eol() { |
|
|
|
echo -en " ... ${lightblue}UPDATE${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_update_eol_nl() { |
|
|
|
echo -e " ... ${lightblue}UPDATE${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
# SKIP |
|
|
|
fn_print_skip_eol() { |
|
|
|
echo -en " ... ${cyan}SKIP${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_skip_eol_nl() { |
|
|
|
echo -e " ... ${cyan}SKIP${default}" |
|
|
|
fn_sleep_time |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_ascii_logo() { |
|
|
|
echo -e "" |
|
|
|
echo -e " mdMMMMbm" |
|
|
|
echo -e " mMMMMMMMMMMm" |
|
|
|
echo -e " mMMMMMMMMMMMMm" |
|
|
|
echo -e " mMMMMMMMMMMMMMMm" |
|
|
|
echo -e " hMMMV^VMMV^VMMMh" |
|
|
|
echo -e " MMMMM MM MMMMM" |
|
|
|
echo -e " hMMs vv sMMh" |
|
|
|
echo -e " hMMM: :MMMh" |
|
|
|
echo -e " .hMMMh hMMMh." |
|
|
|
echo -e " -dMMMh ${lightgrey}__${default} hMMMd-" |
|
|
|
echo -e " :mMMMs ${lightgrey}||${default} sMMMm:" |
|
|
|
echo -e " :MMMM+ ${lightgrey}||${default} ${red}_${default} +NMMN:" |
|
|
|
echo -e " .mMMM+ ${lightgrey}========${default} +MMMm." |
|
|
|
echo -e " yMMMy ${darkgrey}##############${default} yMMMy" |
|
|
|
echo -e " mMMM: ${darkgrey}##############${default} :MMMm" |
|
|
|
echo -e " mMM ${lightyellow}nn${default} ${lightyellow}nn${default} ${lightyellow}nn${default} ${lightyellow}nn${default} MMm" |
|
|
|
echo -e " o ${lightyellow}nNNNNNNNn${default} ${lightyellow}nNNNNNNNn${default} o" |
|
|
|
echo -e " ${lightyellow}nNNNNNNNNNn${default} ${lightyellow}nNNNNNNNNNn${default}" |
|
|
|
echo -e " ${lightyellow}nNNNNNNNNNNN${default} ${lightyellow}NNNNNNNNNNNn${default}" |
|
|
|
echo -e " ${lightyellow}+NNNNNNNNN:${default} ${lightyellow}:NNNNNNNNN+${default}" |
|
|
|
echo -e " ${lightyellow}nNNNNNNN${default} /\ ${lightyellow}NNNNNNNn${default}" |
|
|
|
echo -e " ${lightyellow}nnnnn${default} db ${lightyellow}nnnnn${default}" |
|
|
|
echo -e "" |
|
|
|
echo -e "${lightyellow}888${default} ${lightyellow}d8b${default} ${default}.d8888b. .d8888b. 888b d888" |
|
|
|
echo -e "${lightyellow}888 Y8P ${default}d88P Y88b d88P Y88b 8888b d8888" |
|
|
|
echo -e "${lightyellow}888${default} ${default}888${default} 888 Y88b. 88888b.d88888" |
|
|
|
echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}88888b.${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} 888 Y888b. 888Y88888P888" |
|
|
|
echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}88b${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y8bd8P${default} 888 88888 Y88b. 888 Y888P 888" |
|
|
|
echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}X88K${default} 888 888 888 888 Y8P 888" |
|
|
|
echo -e "${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y88b${default} ${lightyellow}88Y${default} ${lightyellow}.d8pq8b.${default} Y88b d88P Y88b d88P 888 * 888" |
|
|
|
echo -e "${lightyellow}LinuxGSM${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y8888Y${default} ${lightyellow}888${default} ${lightyellow}888${default} Y2012P88 Y8888P 888 888" |
|
|
|
echo -e "" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_restart#!/bin/bash |
|
|
|
# LinuxGSM core_messages.sh module |
|
|
|
# Author: Daniel Gibbs |
|
|
|
# Contributors: https://linuxgsm.com/contrib |
|
|
|
# Website: https://linuxgsm.com |
|
|
|
# Description: Defines on-screen messages such as [ OK ] and how script logs look. |
|
|
|
|
|
|
|
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" |
|
|
|
|
|
|
|
# nl: new line: message is following by a new line. |
|
|
|
# eol: end of line: message is placed at the end of the current line. |
|
|
|
fn_ansi_loader() { |
|
|
|
# carriage return. |
|
|
|
creeol="\r" |
|
|
|
if [ "${ansi}" != "off" ]; then |
|
|
|
# echo colors |
|
|
|
default="\e[0m" |
|
|
|
black="\e[30m" |
|
|
|
red="\e[31m" |
|
|
|
lightred="\e[91m" |
|
|
|
green="\e[32m" |
|
|
|
lightgreen="\e[92m" |
|
|
|
yellow="\e[33m" |
|
|
|
lightyellow="\e[93m" |
|
|
|
blue="\e[34m" |
|
|
|
lightblue="\e[94m" |
|
|
|
magenta="\e[35m" |
|
|
|
lightmagenta="\e[95m" |
|
|
|
cyan="\e[36m" |
|
|
|
lightcyan="\e[96m" |
|
|
|
darkgrey="\e[90m" |
|
|
|
lightgrey="\e[37m" |
|
|
|
white="\e[97m" |
|
|
|
# erase to end of line. |
|
|
|
creeol+="\033[K" |
|
|
|
fi |
|
|
|
# carriage return & erase to end of line. |
|
|
|
creeol="\r\033[K" |
|
|
|
|
|
|
|
bold="\e[1m" |
|
|
|
dim="\e[2m" |
|
|
|
italic="\e[3m" |
|
|
|
underline="\e[4m" |
|
|
|
reverse="\e[7m" |
|
|
|
} |
|
|
|
|
|
|
|
fn_sleep_time() { |
|
|
|
sleep "0.1" |
|
|
|
} |
|
|
|
|
|
|
|
fn_sleep_time_05() { |
|
|
|
sleep "0.5" |
|
|
|
} |
|
|
|
|
|
|
|
fn_sleep_time_1() { |
|
|
|
sleep "1" |
|
|
|
} |
|
|
|
|
|
|
|
fn_sleep_time_5() { |
|
|
|
sleep "5" |
|
|
|
} |
|
|
|
|
|
|
|
fn_sleep_time_10() { |
|
|
|
sleep "10" |
|
|
|
} |
|
|
|
|
|
|
|
# Log display |
|
|
|
######################## |
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: |
|
|
|
fn_script_log() { |
|
|
|
if [ -d "${lgsmlogdir}" ]; then |
|
|
|
if [ -n "${commandname}" ]; then |
|
|
|
echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: ${1}" >> "${lgsmlog}" |
|
|
|
else |
|
|
|
echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${1}" >> "${lgsmlog}" |
|
|
|
fi |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: PASS: |
|
|
|
fn_script_log_pass() { |
|
|
|
fn_script_log "PASS: ${1}" |
|
|
|
exitcode=0 |
|
|
|
} |
|
|
|
|
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: FATAL: |
|
|
|
fn_script_log_fail() { |
|
|
|
fn_script_log "FAIL: ${1}" |
|
|
|
exitcode=1 |
|
|
|
} |
|
|
|
|
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: ERROR: |
|
|
|
fn_script_log_error() { |
|
|
|
fn_script_log "ERROR: ${1}" |
|
|
|
exitcode=2 |
|
|
|
} |
|
|
|
|
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: WARN: |
|
|
|
fn_script_log_warn() { |
|
|
|
fn_script_log "WARN: ${1}" |
|
|
|
exitcode=3 |
|
|
|
} |
|
|
|
|
|
|
|
## Feb 28 14:56:58 ut99-server: Monitor: INFO: |
|
|
|
fn_script_log_info() { |
|
|
|
fn_script_log "INFO: ${1}" |
|
|
|
} |
|
|
|
|
|
|
|
# On-Screen - Automated functions |
|
|
|
################################## |
|
|
|
|
|
|
|
fn_print() { |
|
|
|
echo -en "$*${default}" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_nl() { |
|
|
|
echo -e "$*${default}" |
|
|
|
} |
|
|
|
|
|
|
|
# Helper function to print messages with a specific format and color |
|
|
|
fn_print_message() { |
|
|
|
local type="$1" |
|
|
@ -1035,9 +518,14 @@ fn_print_ascii_logo() { |
|
|
|
fn_print_restart_warning() { |
|
|
|
fn_print_warn "${selfname} will be restarted" |
|
|
|
fn_script_log_warn "${selfname} will be restarted" |
|
|
|
totalseconds=3 |
|
|
|
for seconds in {3..1}; do |
|
|
|
fn_print_warn "${selfname} will be restarted: ${seconds}" |
|
|
|
fn_print_warn "${selfname} will be restarted: ${totalseconds}" |
|
|
|
totalseconds=$((totalseconds - 1)) |
|
|
|
fn_sleep_time_1 |
|
|
|
if [ "${seconds}" == "0" ]; then |
|
|
|
break |
|
|
|
fi |
|
|
|
done |
|
|
|
fn_print_warn_nl "${selfname} will be restarted" |
|
|
|
} |
|
|
|