180 lines
4.9 KiB
Bash
180 lines
4.9 KiB
Bash
#!/bin/bash
|
|
|
|
# interfas de colores
|
|
msg(){
|
|
COLOR[0]='\033[1;37m' #BRAN='\033[1;37m'
|
|
COLOR[1]='\e[31m' #VERMELHO='\e[31m'
|
|
COLOR[2]='\e[32m' #VERDE='\e[32m'
|
|
COLOR[3]='\e[33m' #AMARELO='\e[33m'
|
|
COLOR[4]='\e[34m' #AZUL='\e[34m'
|
|
COLOR[5]='\e[91m' #MAGENTA='\e[35m'
|
|
COLOR[6]='\033[1;97m' #MAG='\033[1;36m'
|
|
COLOR[7]='\e[36m' #teal='\e[36m'
|
|
COLOR[8]='\e[30m' #negro='\e[30m'
|
|
COLOR[9]='\033[34m' #blue='\033[1;34m'
|
|
|
|
NEGRITO='\e[1m'
|
|
SEMCOR='\e[0m'
|
|
|
|
case $1 in
|
|
-ne) cor="${COLOR[1]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
|
|
-nazu) cor="${COLOR[6]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
|
|
-nverd) cor="${COLOR[2]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
|
|
-nama) cor="${COLOR[3]}${NEGRITO}" && echo -ne "${cor}${2}${SEMCOR}";;
|
|
-ama) cor="${COLOR[3]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-verm) cor="${COLOR[3]}${NEGRITO}[!] ${COLOR[1]}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-verm2) cor="${COLOR[1]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-verm3) cor="${COLOR[1]}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-teal) cor="${COLOR[7]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-teal2) cor="${COLOR[7]}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-blak) cor="${COLOR[8]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-blak2) cor="${COLOR[8]}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-azu) cor="${COLOR[6]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-blu) cor="${COLOR[9]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-blu1) cor="${COLOR[9]}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-verd) cor="${COLOR[2]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-bra) cor="${COLOR[0]}${NEGRITO}" && echo -e "${cor}${2}${SEMCOR}";;
|
|
-bar) cor="${COLOR[1]}=====================================================" && echo -e "${SEMCOR}${cor}${SEMCOR}";;
|
|
-bar2) cor="${COLOR[7]}=====================================================" && echo -e "${SEMCOR}${cor}${SEMCOR}";;
|
|
-bar3) cor="${COLOR[1]}-----------------------------------------------------" && echo -e "${SEMCOR}${cor}${SEMCOR}";;
|
|
-bar4) cor="${COLOR[7]}-----------------------------------------------------" && echo -e "${SEMCOR}${cor}${SEMCOR}";;
|
|
esac
|
|
}
|
|
|
|
# centrado de texto
|
|
print_center(){
|
|
if [[ -z $2 ]]; then
|
|
text="$1"
|
|
else
|
|
col="$1"
|
|
text="$2"
|
|
fi
|
|
|
|
while read line; do
|
|
unset space
|
|
x=$(( ( 54 - ${#line}) / 2))
|
|
for (( i = 0; i < $x; i++ )); do
|
|
space+=' '
|
|
done
|
|
space+="$line"
|
|
if [[ -z $2 ]]; then
|
|
msg -azu "$space"
|
|
else
|
|
msg "$col" "$space"
|
|
fi
|
|
done <<< $(echo -e "$text")
|
|
}
|
|
#print_center2(){
|
|
# local x
|
|
# local y
|
|
# #text="$*"
|
|
# text="$2"
|
|
# #x=$(( ($(tput cols) - ${#text}) / 2))
|
|
# x=$(( ( 54 - ${#text}) / 2))
|
|
# echo -ne "\E[6n";read -sdR y; y=$(echo -ne "${y#*[}" | cut -d';' -f1)
|
|
# #echo -e "\033[${y};${x}f$*"
|
|
# msg "$1" "\033[${y};${x}f$2"
|
|
#}
|
|
|
|
# titulos y encabesados
|
|
title(){
|
|
clear
|
|
msg -bar
|
|
if [[ -z $2 ]]; then
|
|
print_center -azu "$1"
|
|
else
|
|
print_center "$1" "$2"
|
|
fi
|
|
msg -bar
|
|
}
|
|
|
|
# finalizacion de tareas
|
|
enter(){
|
|
msg -bar
|
|
text="►► Presione enter para continuar ◄◄"
|
|
if [[ -z $1 ]]; then
|
|
print_center -ama "$text"
|
|
else
|
|
print_center "$1" "$text"
|
|
fi
|
|
read
|
|
}
|
|
|
|
# opcion, regresar volver/atras
|
|
back(){
|
|
msg -bar
|
|
echo -ne "$(msg -verd " [0]") $(msg -verm2 ">") " && msg -bra "\033[1;41mVOLVER"
|
|
msg -bar
|
|
}
|
|
|
|
# menu maker (opciones 1, 2, 3,.....)
|
|
menu_func(){
|
|
local options=${#@}
|
|
local array
|
|
for((num=1; num<=$options; num++)); do
|
|
echo -ne "$(msg -verd " [$num]") $(msg -verm2 ">") "
|
|
array=(${!num})
|
|
case ${array[0]} in
|
|
"-vd") echo -e "\033[1;33m[!]\033[1;32m ${array[@]:1}";;
|
|
"-vm") echo -e "\033[1;33m[!]\033[1;31m ${array[@]:1}";;
|
|
"-fi") echo -e "${array[@]:2} ${array[1]}";;
|
|
-bar|-bar2|-bar3|-bar4) echo -e "\033[1;37m${array[@]:1}\n$(msg ${array[0]})";;
|
|
*) echo -e "\033[1;37m${array[@]}";;
|
|
esac
|
|
done
|
|
}
|
|
|
|
# opcion de seleccion numerica
|
|
selection_fun(){
|
|
local selection="null"
|
|
local range
|
|
if [[ -z $2 ]]; then
|
|
opcion=$1
|
|
col="-nazu"
|
|
else
|
|
opcion=$2
|
|
col=$1
|
|
fi
|
|
for((i=0; i<=$opcion; i++)); do range[$i]="$i "; done
|
|
while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do
|
|
msg "$col" " Selecione una Opcion: " >&2
|
|
read selection
|
|
tput cuu1 >&2 && tput dl1 >&2
|
|
done
|
|
echo $selection
|
|
}
|
|
|
|
in_opcion(){
|
|
unset opcion
|
|
if [[ -z $2 ]]; then
|
|
msg -nazu " $1: " >&2
|
|
else
|
|
msg $1 " $2: " >&2
|
|
fi
|
|
read opcion
|
|
echo "$opcion"
|
|
}
|
|
|
|
in_opcion_down(){
|
|
dat=$1
|
|
length=${#dat}
|
|
cal=$(( 22 - $length / 2 ))
|
|
line=''
|
|
for (( i = 0; i < $cal; i++ )); do
|
|
line+='╼'
|
|
done
|
|
echo -e " $(msg -verm3 "╭$line╼[")$(msg -azu "$dat")$(msg -verm3 "]")"
|
|
echo -ne " $(msg -verm3 "╰╼")\033[37;1m> " && read opcion
|
|
}
|
|
|
|
export -f msg
|
|
export -f selection_fun
|
|
export -f menu_func
|
|
export -f print_center
|
|
export -f title
|
|
export -f back
|
|
export -f enter
|
|
export -f in_opcion
|
|
export -f in_opcion_down
|
|
|