This commit is contained in:
kyodev 2017-09-23 11:46:04 +02:00
parent 462e281e4f
commit 32dd21589a
2 changed files with 42 additions and 29 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=3.13.0
date="07/09/2017"
version=3.14.0
date="23/09/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getFlashPlayer"
@ -14,7 +14,7 @@ user_agent="Mozilla/5.0 Firefox"
# contributeurs: kyodev, coyotus, naguam
#####
f__affichage(){ # v06/2017 définition couleurs
f__affichage(){ # 06/2017 définition couleurs
YELLOW="$(printf "\033[0;33m")" # ?
GREEN="$(printf "\033[0;32m")" # ok
BLUE="$(printf "\033[0;34m")" # info
@ -35,7 +35,7 @@ echo -e "$YELLOW pour Firefox, version $version - $date$COLOR\n"
}
# test validité archive, $1 archive, assigne $archive_detect (gzip|xz|deb|zip), return 1 si inconnue
f__archive_test(){ # v30/08/2017
f__archive_test(){ # 30/08/2017
local filetest="$(file -b $1)"
grep -q 'gzip compressed data' <<< "$filetest" && archive_detect="gzip"
grep -q 'bzip2 compressed data' <<< "$filetest" && archive_detect="bzip2"
@ -46,25 +46,27 @@ f__archive_test(){ # v30/08/2017
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si $opType=upgrade
f__error() { # v25/08/2017
f__error() { # 22/09/2017
echo -e "\n$RED $script $version, erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
unset i
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, si $1=raw pas de ligne vide à la fin, si $1=log uniquement $2 logué
f__info() { # v25/08/2017
f__info() { # 22/09/2017
local depart=1
if [ "$1" == "raw" ] || [ "$1" == "log" ]; then depart=2; fi
[ "$1" == "log" ] && f__log "$(sed -E 's/\\t//;s/\\n// ' <<< $2 | xargs )"
for (( i=$depart ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
unset i
[ "$1" == raw ] && printf "$COLOR" || echo "$COLOR"
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){ # v08/O9/2017
f__log(){ # 08/O9/2017
if [ -w "$fileLogs" ]; then
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
@ -82,7 +84,7 @@ f__log(){ # v08/O9/2017
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyPackages ( $1=liste paquets )
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresents ( $1=liste paquets )
# attention priorité $debOnlyPackages sur $debOnlyPresents
f__requis(){ # v30/08/2017-3
f__requis(){ # 22/09/2017
local dependsMissing packagesMissing command package
unset debOnlyPackages debOnlyPresents
for i in $1; do
@ -98,6 +100,7 @@ f__requis(){ # v30/08/2017-3
packagesMissing+="$package "
fi
done
unset i
[ "$debOnlyPackages" ] && debOnlyPackages="$(xargs <<< $debOnlyPackages)" # trim début & fin
[ "$debOnlyPresents" ] && debOnlyPresents="$(xargs <<< $debOnlyPresents)" # trim début & fin
[ "$debOnlyPackages" ] && return 1
@ -112,7 +115,7 @@ f__requis(){ # v30/08/2017-3
# user ayant initié la session graphique, assigne $user_
# return 1 sur échec identification user, return 2 sur absence home/
# gestion variable environnement user avec: USER_INSTALL=user script
f__user(){ # v30/08/2017-4
f__user(){ # 30/08/2017-4
if [ "$USER_INSTALL" ]; then # user_ via variable environnement, moyen d'injecter root
user_="$USER_INSTALL";
return 0
@ -146,7 +149,7 @@ f__user(){ # v30/08/2017-4
# test wget, $1 url à tester, sortie script, sur erreur ou retour à la normale
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
# si $2=loc affiche seulement location
f__wget_test(){ # v07/09/2017
f__wget_test(){ # 07/09/2017
local file_test_wget retourWget retourHttp location
file_test_wget="/tmp/testWget-$RANDOM"
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" || retourWget="$?"
@ -219,7 +222,7 @@ echo -e " plus d'infos: $GREEN https://kyodev.frama.io/kyopages/scripts/getFlas
}
# pas beau ce soft :(
fflash_avertissement(){ #v06/2017
fflash_avertissement(){ # 06/2017
cat << 'EOF'
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on
ne peut pas connaître le code source, ni l'utiliser sans conditions,
@ -233,7 +236,7 @@ echo -e " voir:$GREEN https://developer.mozilla.org/fr/docs/Plugins/Roadmap$COL
}
# version Flash en ligne & installée, si $1="quiet" pas d'affichage, $verFlash=x.y, $plugin_aJour=ko
fflash_get_version(){ #v06/2017
fflash_get_version(){ # 06/2017
verFlash="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \
sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na"
if [ "$?" != "0" ]; then f__wget_test "$urlOnline"; fi # sortie script si erreur wget
@ -254,7 +257,7 @@ fflash_get_version(){ #v06/2017
}
# install plugin dans config user mozilla, $1 manuel (install manuelle), $2 script à installer si install manuelle
fflash_install(){ #v06/09/2017
fflash_install(){ # 06/09/2017
local dirTemp fileTemp
[ "$opType" == "upgrade" ] || fflash_avertissement
if [ "$1" == "manuel" ]; then
@ -289,7 +292,7 @@ fflash_install(){ #v06/09/2017
}
# installation du plugin chargé manuellement, $1
fflash_install_manuel(){ # v16/08/2017
fflash_install_manuel(){ # 16/08/2017
[ -e "$1" ] || f__error "fichier plugin $1 introuvable"
f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive valide"
fflash_install "manuel" "$1"
@ -297,7 +300,7 @@ fflash_install_manuel(){ # v16/08/2017
}
# calcul url téléchargement plugin, assigne $recup_url,
fflash_recup_url_v1(){ # v 30/08/2017
fflash_recup_url_v1(){ # 30/08/2017
local recup1 recup2
recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/"
if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then recup2='i386';
@ -307,7 +310,7 @@ fflash_recup_url_v1(){ # v 30/08/2017
}
# suppression du plugin
fflash_remove(){ #v06/2017
fflash_remove(){ # 06/2017
[ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer inexistant pour $user_\n"
local verInstall="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
rm "$dirInstall/libflashplayer.so"
@ -317,7 +320,7 @@ fflash_remove(){ #v06/2017
}
# test et mise à jour plugin si plugin outdated
fflash_upgrade(){ #v30/08/2017
fflash_upgrade(){ # 30/08/2017
fflash_get_version
if [ "$plugin_aJour" == "ko" ]; then
fflash_install
@ -325,7 +328,7 @@ fflash_upgrade(){ #v30/08/2017
}
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove
fscript_cronAnacron(){ # v06/09/2017
fscript_cronAnacron(){ # 06/09/2017
local dirAnacron dirSpool fileAnacron
[ "$(type -t fscript_cronAnacron_special)" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel
dirAnacron="/home/$user_/.config/anacron"
@ -360,14 +363,14 @@ fscript_cronAnacron(){ # v06/09/2017
}
# spécifique script
fscript_cronAnacron_special(){ # v19/08/2017
fscript_cronAnacron_special(){ # 19/08/2017
rm "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" &>/dev/null # ancienne localisation
rm "/home/$user_/.config/anacron/spool/getFP"* &>/dev/null # ancien job
[ $EUID -eq 0 ] && sed -i "/libflashplayer.anacrontab/d" /etc/crontab # ancienne localisation anacrontab
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
fscript_get_version(){ # v07/09/2017
fscript_get_version(){ # 07/09/2017
f__info "raw" "$GREEN""version script en cours: $version"
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
if [ "$versionScript" ]; then
@ -382,7 +385,7 @@ fscript_get_version(){ # v07/09/2017
}
# installation du script dans le système
fscript_install(){ # v06/09/2017
fscript_install(){ # 06/09/2017
if grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""l'installation dans le système doit se faire depuis un script local $GREEN(./$script -i )$COLOR"
return
@ -409,7 +412,7 @@ fscript_install(){ # v06/09/2017
}
# spécifique script
fscript_install_special(){ # v25/08/2017
fscript_install_special(){ # 25/08/2017
[ -e "/var/log/sdeb_getFlash.log" ] && mv "/var/log/sdeb_getFlash.log" "$fileLogs" # changement ancien logs
if f__requis "flashplugin-nonfree" "debOnly" && [ "$debOnlyPresents" ]; then
apt-get purge flashplugin-nonfree
@ -417,7 +420,7 @@ fscript_install_special(){ # v25/08/2017
}
# suppression du script dans le système
fscript_remove(){ # v06/09/2017
fscript_remove(){ # 06/09/2017
if ! grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -r)$COLOR"
return 1
@ -439,7 +442,7 @@ fscript_remove(){ # v06/09/2017
}
# mise à jour script si dispo
fscript_update(){ # v06/09/2017
fscript_update(){ # 06/09/2017
if ! grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)$COLOR"
return
@ -475,15 +478,15 @@ urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ -e "/opt/bin/$script" ] && [ "$(stat -c %G /opt/bin/$script)" == "root" ] && problemDetected+="-1" # droits inappropriés sur le script, version de dev
options=$@
if [ "$(dirname $0)" == "." ]; then options="-i" # script install
if [ "$(dirname $0)" == "." ] && [ ! -e "$fileDev" ]; then options="-i" # script install
else
if [ ! -w "$fileLogs" ] && [ -e "$dirInstall/libflashplayer.so" ] ; then problemDetected+="-2"; fi # ancien système de logs via syslog
fi
[ "$problemDetected" ] && f__info "$RED""l'installation du script est obsolète ($problemDetected)" \
"veuillez réinstaller le script manuellement" "$GREEN""voir $urlNotice#messages-avertissement"
for i in $options; do
case $i in
for j in $options; do
case $j in
install )
fflash_install
exit ;; # installation plugin
@ -521,7 +524,7 @@ for i in $options; do
exit ;; # affichage help
esac
done
unset j
exit 0
wget -O getFlashPlayer https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer

View File

@ -1,6 +1,16 @@
# changelog getFlashPlayer
## todo
* placé ln dans /usr/local/bin au lieu de /usr/bin ?
* flash pour chromium
## 3.14.0 23/09/2017
* f__requis, f__info, f__error unset/for
* révision unset/for
## 3.13.0 07/09/2017
* correction f_help