This commit is contained in:
kyodev 2017-07-28 20:18:25 +02:00
parent e8c30c71c8
commit 5eb3e9b984
2 changed files with 49 additions and 24 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.6.7
date="27/07/2017"
version=2.7.0
date="28/07/2017"
projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFlashPlayer"
@ -56,20 +56,33 @@ f__user(){
fi
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){
if [ -w "/var/log/sdeb_getFlash.log" ]; then
if [ "$(stat -c %s /var/log/sdeb_getFlash.log)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "/var/log/sdeb_getFlash.log"
else
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "/var/log/sdeb_getFlash.log"
fi
else
f__info "pour bénéficier de la nouvelle version des logs, vous devriez réinstaller manuellement $script" \
"voir https://kyodev.frama.io/kyopages/scripts/getFlashPlayer/#installation-rapide-du-script"
fi
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.err "$script $version: <erreur> $1"; fi
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin, syslog $1 si upgrade
# affichage des paramètres en bleu, ligne vide à la fin
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi
}
#test dépendances (commandes disponibles), $1 liste commandes
@ -116,8 +129,13 @@ fscript_install(){
chown "$user_": "/opt/bin/$script"
# cron/anacron install
fscript_cronAnacron install
# création fichier log
touch "/var/log/sdeb_getFlash.log"
chmod a+rwx "/var/log/sdeb_getFlash.log"
chown "$user_": "/var/log/sdeb_getFlash.log"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
f__info "$GREEN$script installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
f__log "$script $version installé dans le système"
exit 0
}
@ -126,10 +144,12 @@ fscript_remove(){
f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null || unlink /usr/local/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
unlink /usr/local/bin/"$script" &>/dev/null # ancienne localisation
# cron/anacron remove
fscript_cronAnacron remove
f__info "$GREEN$script supprimé du système."
f__log "$script $version supprimé du système"
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko,
@ -152,7 +172,8 @@ fscript_dl(){
chown "$user_": "$dirTemp$script"
cp -d "$dirTemp$script" /opt/bin/"$script"
rm -rf "$dirTemp"
echo ""; f__info "$script mis à jour en version $versionScript"
f__info "\n $script mis à jour en version $versionScript"
f__log "$script mis à jour en version $versionScript"
$0 upgrade #script mis à jour, on relance le script en upgrade pour le plugin
exit 0
}
@ -182,7 +203,7 @@ rm "$dirInstall/libflashplayer.anacrontab"
esac
}
# version Flash en ligne & installée, $verFlash=x.y|na, $plugin_aJour=ok|ko
# version Flash en ligne & installée, si $1="quiet" pas d'affichage, $verFlash=x.y|na, $plugin_aJour=ok|ko
fflash_get_version(){
local verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)"
plugin_aJour="ok"
@ -190,14 +211,14 @@ fflash_get_version(){
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
if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible";
else f__info "version FlashPlayer en ligne: $verFlash"; fi
else [ "$1" == "quiet" ] || f__info "version FlashPlayer en ligne: $verFlash"; fi
if [ -z "$verInstall" ]; then
f__info "FlashPlayer non installé"
elif [ "$verInstall" == "$verFlash" ]; then
f__info "FlashPlayer à jour"
[ "$1" == "quiet" ] || f__info "FlashPlayer à jour"
else
plugin_aJour="ko"
f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
[ "$1" == "quiet" ] || f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
fi
}
@ -212,7 +233,7 @@ cat << 'EOF'
Il sera bloqué plus ou moins bloqué à terme pas les navigateurs majeurs,
c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
EOF
echo -e "voir:$GREEN https://developer.mozilla.org/fr/docs/Plugins/Roadmap$COLOR\n"
echo -e " voir:$GREEN https://developer.mozilla.org/fr/docs/Plugins/Roadmap$COLOR\n"
}
# affichage help
@ -268,12 +289,11 @@ fflash_install(){
local file="$(basename $2)"
mkdir -p "$dirTemp"
else
f__info "installation FlashPlayer, version $verFlash"
local file="flash_player_npapi_linux.$(getconf LONG_BIT).tar.gz"
local dirTemp="/tmp/$script-$RANDOM/"
if [ $verFlash == "na" ]; then fflash_get_version "quiet"; fi
f__info "installation FlashPlayer, version $verFlash"
mkdir -p "$dirTemp"
# calcul $file, affichage version pendant l'install
if [ $verFlash == "na" ]; then fflash_get_version; fi
# détection/chargement/test archive plugin flashplayer
fflash_recup_url_v1
@ -281,7 +301,6 @@ fflash_install(){
if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi
f__archive_test "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
fi
# décompression archive téléchargée dans dossier de travail
if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi
if [ "$1" == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi
@ -290,15 +309,13 @@ fflash_install(){
mkdir -p "$dirInstall"
cp -f "$dirTemp"libflashplayer.so "$dirInstall/"
rm -Rf "$dirTemp"
# marqueur version et maj dans plugins/ user mozilla
# marqueur version
echo "$verFlash" > "$dirInstall/libflashplayer.version"
touch "$dirInstall/libflashplayer.maj"
# droits user si jamais installation par root
chown -R "$user_": "$dirInstall"
echo ""; f__info "FlashPlayer $verFlash installé ou mis à jour pour $user_" "\tPour tester: http://get.adobe.com/flashplayer/about/"
f__info "\n FlashPlayer $verFlash installé pour $user_" "\tPour tester: http://get.adobe.com/flashplayer/about/"
f__log "FlashPlayer $verFlash installé pour $user_"
}
# test et mise à jour plugin si plugin outdated
@ -310,17 +327,18 @@ fflash_upgrade(){
fflash_remove(){
[ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer inexistant pour $user_\n"
local verFlashRemove="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
rm -f "$dirInstall/libflashplayer.maj"
rm -f "$dirInstall/libflashplayer.maj" &>/dev/null # ancien fichier éventuel
rm -f "$dirInstall/libflashplayer.so"
rm -f "$dirInstall/libflashplayer.version"
f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_"
f__log "FlashPlayer $verFlashRemove désinstallé pour $user_"
}
#initialisation
f__affichage
f__user
verFlash="na"
f__requis "wget logger file tar"
f__requis "wget file tar"
dirInstall="/home/$user_/.mozilla/plugins"
urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ -e "$dirInstall/libflashplayer.so" ] && flash_installed="ok" || flash_installed="ko"
@ -343,13 +361,14 @@ case "$1" in
fscript_remove ;; # désinstallation du script
"upgrade" )
opType="upgrade"
f__log="tests mise à jour"
fscript_get_version
fscript_dl
[ "$flash_installed" == "ko" ] && exit 0
fflash_get_version
fflash_upgrade ;; # upgrade script et plugin si installé
"manuel" )
fflash_install_manuel "$2" ;; # install manuelle d'un chargement
fflash_install_manuel "$2" ;; # installation manuelle d'un chargement
* )
fflash_help
fflash_avertissement ;; # affichage help par défaut

View File

@ -2,6 +2,12 @@
## todo
## 2.7.0 27/07/2017
* mieux: fichier log spécifique mais nécessite réinstallation en root (pas de mise à jour)
* mieux: logs d'évènements majeurs
* fix: suppression ancienne localisation /usr/local/bin/
* avertissement maj manuelle à faire pour nouveaux logs
## 2.6.7 27/07/2017