kyopages/scripts/sdeb

157 lines
4.0 KiB
Plaintext
Raw Normal View History

2017-08-27 15:35:08 +02:00
#!/bin/bash
2017-12-09 22:36:12 +01:00
version=1.2.0
date=7/12/2017
2017-10-12 09:30:38 +02:00
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
2017-12-09 22:36:12 +01:00
f__dialog_oui_non(){ # 5/12/2017
2017-10-12 09:30:38 +02:00
local reply param
[[ "$1" =~ -t[0-9]{1,2} ]] && param="$(sed -En 's/.*(-t[0-9]{1,2}).*/\1/p' <<< $1)"
2017-12-09 22:36:12 +01:00
echo -en "$BLUE$2$STD"
[[ "$1" =~ oui ]] && echo -n " [O/n] " || echo -n " [o/N] "
2017-10-12 09:30:38 +02:00
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
}
2017-12-09 22:36:12 +01:00
# $1=cmd si $2: nb de tentatives pour s'identifier, sinon 2 tentatives par défaut, suppose bash existant
f__sudo(){ # 4/12/2017
local nb=2 sudo isudo toBash
[ $( type -p bash 2>/dev/null ) ] && toBash="$( type -p bash )" || return 2
2017-10-12 09:30:38 +02:00
# sudo --shell bash équivalent su ?
if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then
2017-12-09 22:36:12 +01:00
sudo="sudo su --shell $toBash --preserve-environment -c "
2017-10-12 09:30:38 +02:00
else
2017-12-09 22:36:12 +01:00
sudo="su --shell $toBash --preserve-environment -c "
2017-10-12 09:30:38 +02:00
fi
[ "$2" ] && nb="$2"
for (( isudo=1 ; isudo<="$nb" ; isudo++ )); do
2017-12-09 22:36:12 +01:00
$sudo " $1"
2017-09-24 07:31:03 +02:00
[ "$?" == 0 ] && break
2017-10-12 09:30:38 +02:00
[ "$isudo" == "$nb" ] && return 1
2017-09-24 07:31:03 +02:00
done
}
2017-08-27 15:35:08 +02:00
2017-10-12 09:30:38 +02:00
# [ $1=timeout en s (O pour désactiver timeout) [$2=message] ]
2017-09-24 11:51:42 +02:00
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
2017-10-12 09:30:38 +02:00
read -n1 -t"$1" -s
2017-09-24 11:51:42 +02:00
else
2017-10-12 09:30:38 +02:00
read -n1 -s
2017-09-24 11:51:42 +02:00
fi
2017-09-24 10:15:32 +02:00
echo
}
2017-09-24 11:51:42 +02:00
2017-10-16 07:07:41 +02:00
help(){ # 16/10/2017
2017-10-16 21:28:29 +02:00
echo "$BOLD téléchargement et installation scripts$STD"
2017-10-16 07:07:41 +02:00
echo
2017-10-16 21:28:29 +02:00
echo
echo " $0 all | script getX"
2017-10-16 07:07:41 +02:00
echo
echo " si all : traitements de tous les scripts"
2017-10-16 21:28:29 +02:00
echo " script getX: $(tr ' ' '|' <<< $liste)"
echo
2017-10-16 07:07:41 +02:00
echo " si option incorrecte: affichage de cette aide"
echo
exit 1
}
2017-08-27 15:35:08 +02:00
2017-10-16 07:07:41 +02:00
start(){ # 16/10/2017
f__color
if [ "$(which figlet)" ]; then
echo -e "$BOLD"
figlet -w120 " script sdeb" | tr '`' "'"
2017-10-16 21:28:29 +02:00
printf "$STD"
2017-10-16 07:07:41 +02:00
else
2017-10-16 21:28:29 +02:00
echo -e "$BOLD\n scripts sdeb$STD"
2017-10-16 07:07:41 +02:00
fi
2017-10-16 21:28:29 +02:00
echo -e " $(basename $0) $version\n"
2017-10-16 07:07:41 +02:00
}
2017-08-27 15:35:08 +02:00
2017-10-16 07:07:41 +02:00
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"
2017-10-16 21:28:29 +02:00
wget -nv -O "$1" "$url"
2017-10-16 07:07:41 +02:00
chmod +x "$1"
2017-10-16 21:28:29 +02:00
# -q, --quiet -nv, --no-verbose
2017-10-16 07:07:41 +02:00
}
2017-08-27 15:35:08 +02:00
2017-10-16 07:07:41 +02:00
install(){ # 16/10/2017
2017-10-16 21:28:29 +02:00
if [ -e "$1" ]; then
./$1 -i
f__pause 10
else
echo " $1 absent"
fi
echo
2017-10-16 07:07:41 +02:00
}
2017-10-12 09:30:38 +02:00
2017-10-16 07:07:41 +02:00
#------ départ script ----------------------------------------------------------
2017-10-16 21:28:29 +02:00
liste="getInfo getIp getFirefox getFlashPlayer getThunderbird"
2017-10-16 07:07:41 +02:00
# traitement options
[[ "$1" =~ ^get || "$1" == "all" ]] || help # si appel incorrect, help
2017-10-16 21:28:29 +02:00
[[ $* =~ --quiet ]] || start
2017-10-16 07:07:41 +02:00
2017-10-16 21:28:29 +02:00
echo -e "$BOLD\n chargement des scripts$STD\n"
if f__dialog_oui_non "oui" " charger les scripts?"; then
2017-10-16 07:07:41 +02:00
if [ "$1" == "all" ];then
for ifile in $liste; do
download "$ifile"
done
else
download "$1"
fi
2017-10-12 09:30:38 +02:00
fi
2017-08-27 15:35:08 +02:00
2017-10-16 21:28:29 +02:00
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
2017-10-16 07:07:41 +02:00
if [ "$1" == "all" ];then
for ifile in $liste; do
2017-10-16 21:28:29 +02:00
install "$ifile"
2017-10-16 07:07:41 +02:00
done
else
2017-10-16 21:28:29 +02:00
install "$1"
2017-10-16 07:07:41 +02:00
fi
2017-10-12 09:30:38 +02:00
fi
2017-09-24 07:31:03 +02:00
exit 0
2017-10-12 09:30:38 +02:00
wget -O sdeb https://frama.link/sdeb
2017-09-24 07:31:03 +02:00
chmod +x sdeb && ./sdeb
2017-10-12 09:30:38 +02:00
wget -O sdeb https://framagit.org/kyodev/kyopages/raw/master/scripts/sdeb