kyopages/scripts/sdeb

155 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
version=1.1.0
date=16/10/2017
f__color(){ # 08/10/2017
YELLOW=$(tput setaf 3) # question
GREEN=$(tput setaf 2) # ok
BLUE=$(tput setaf 4) # info
RED=$(tput setaf 1) # alerte
STD=$(tput sgr0) # retour normal
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
BOLD=$(tput bold)
ITAL=$(tput sitm)
SOUL=$(tput smul)
}
# $1=oui|non&[-tx] réponse par défaut & -tx=timeout, $2=message question, return 0 pour oui, 1 pour non
f__dialog_oui_non(){ # 08/10/2017
local reply param
[[ "$1" =~ -t[0-9]{1,2} ]] && param="$(sed -En 's/.*(-t[0-9]{1,2}).*/\1/p' <<< $1)"
printf "$BLUE$2$STD"
[[ "$1" =~ oui ]] && printf " [O/n] " || printf " [o/N] "
if [ "$param" ]; then
read -t2 reply
else
read reply
fi
if [ -z "$reply" ]; then
[[ "$1" =~ oui ]] && reply="oui" || reply="non"
fi
echo
if [[ ${reply,,} =~ ^ou?i?$ ]]; then return 0; else return 1; fi
}
# $1=cmd si $2: nb de tentatives pour s'identifier, sinon 1 tentative par défaut
f__sudo(){ # 11/10/2017
local nb=1 sudo isudo
# sudo --shell bash équivalent su ?
if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then
sudo="sudo su --shell $(which bash) --preserve-environment -c "
else
sudo="su --shell $(which bash) --preserve-environment -c "
fi
[ "$2" ] && nb="$2"
for (( isudo=1 ; isudo<="$nb" ; isudo++ )); do
$sudo "$1"
[ "$?" == 0 ] && break
[ "$isudo" == "$nb" ] && return 1
done
}
# [ $1=timeout en s (O pour désactiver timeout) [$2=message] ]
f__pause(){ # 24/09/2017
local message="Appuyer sur une touche pour continuer"
[ "$2" ] && message="$2"
if [ "$1" ] && [ -z "$2" ]; then message+=" ou attendre $1""s"; fi
printf "$message"
if [ "$1" ]; then
read -n1 -t"$1" -s
else
read -n1 -s
fi
echo
}
help(){ # 16/10/2017
echo "$BOLD téléchargement et installation scripts$STD"
echo
echo
echo " $0 all | script getX"
echo
echo " si all : traitements de tous les scripts"
echo " script getX: $(tr ' ' '|' <<< $liste)"
echo
echo " si option incorrecte: affichage de cette aide"
echo
exit 1
}
start(){ # 16/10/2017
f__color
if [ "$(which figlet)" ]; then
echo -e "$BOLD"
figlet -w120 " script sdeb" | tr '`' "'"
printf "$STD"
else
echo -e "$BOLD\n scripts sdeb$STD"
fi
echo -e " $(basename $0) $version\n"
}
download(){ # 16/10/2017
local url
[ "$1" == "getInfo" ] && url="https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo"
[ "$1" == "getIp" ] && url="https://framagit.org/kyodev/kyopages/raw/master/scripts/getIp"
[ "$1" == "getFirefox" ] && url="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFirefox"
[ "$1" == "getFlashPlayer" ] && url="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer"
[ "$1" == "getThunderbird" ] && url="https://framagit.org/kyodev/kyopages/raw/master/scripts/getThunderbird"
wget -nv -O "$1" "$url"
chmod +x "$1"
# -q, --quiet -nv, --no-verbose
}
install(){ # 16/10/2017
if [ -e "$1" ]; then
./$1 -i
f__pause 10
else
echo " $1 absent"
fi
echo
}
#------ départ script ----------------------------------------------------------
liste="getInfo getIp getFirefox getFlashPlayer getThunderbird"
# traitement options
[[ "$1" =~ ^get || "$1" == "all" ]] || help # si appel incorrect, help
[[ $* =~ --quiet ]] || start
echo -e "$BOLD\n chargement des scripts$STD\n"
if f__dialog_oui_non "oui" " charger les scripts?"; then
if [ "$1" == "all" ];then
for ifile in $liste; do
download "$ifile"
done
else
download "$1"
fi
fi
echo -e "$BOLD\n installation des scripts$STD\n"
if f__dialog_oui_non "oui" " installer les scripts?" ; then
if [ $EUID -ne 0 ]; then
echo " vous devez être ROOT pour installer les scripts dans le système"
f__sudo "./sdeb $* --quiet"
exit 0
fi
if [ "$1" == "all" ];then
for ifile in $liste; do
install "$ifile"
done
else
install "$1"
fi
fi
exit 0
wget -O sdeb https://frama.link/sdeb
chmod +x sdeb && ./sdeb
wget -O sdeb https://framagit.org/kyodev/kyopages/raw/master/scripts/sdeb