#!/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