This commit is contained in:
kyodev 2017-07-30 16:32:22 +02:00
parent 2162c3c189
commit e8be9f78e3
2 changed files with 48 additions and 41 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.7.0
date="28/07/2017"
version=2.8.0
date="30/07/2017"
projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFlashPlayer"
@ -58,15 +58,12 @@ f__user(){
# 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"
if [ -w "$fileLogs" ]; then
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
else
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "/var/log/sdeb_getFlash.log"
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
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
}
@ -89,7 +86,7 @@ f__info() {
f__requis(){
for i in $@; do
if [ ! "$(which $i)" ]; then
testDepends="ko"
local testDepends="ko"
f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
fi
done
@ -130,9 +127,9 @@ fscript_install(){
# 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"
touch "$fileLogs"
chmod a+rwx "$fileLogs"
chown "$user_": "$fileLogs"
[ -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"
@ -181,31 +178,33 @@ fscript_dl(){
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){
case "$1" in
"install" )
# création répertoire plugin/
mkdir -p "$dirInstall"
chown "$user_": "$dirInstall"
# table anacron
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$dirInstall/libflashplayer.anacrontab"
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$dirInstall/libflashplayer.anacrontab"
chown "$user_": "$dirInstall/libflashplayer.anacrontab"
# création spool anacron utilisateur
mkdir -p "/home/$user_/.config/anacron/spool"
chown "$user_": "/home/$user_/.config/anacron/spool"
# cron tab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $dirInstall/libflashplayer.anacrontab -S /home/$user_/.config/anacron/spool" >> /etc/crontab
install )
if [ ! -e "$fileAnacron" ]; then
# création répertoire plugin/
mkdir -p "$dirInstall"
chown "$user_": "$dirInstall"
# table anacron
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$fileAnacron"
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$fileAnacron"
chown "$user_": "$fileAnacron"
# création spool anacron utilisateur
mkdir -p "/home/$user_/.config/anacron/spool"
chown "$user_": "/home/$user_/.config/anacron/spool"
# cron tab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S /home/$user_/.config/anacron/spool" >> /etc/crontab
fi
;;
"remove" )
[ -e "/home/$user_/.config/anacron/spool/getFP" ] && rm "/home/$user_/.config/anacron/spool/getFP"
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
rm "$dirInstall/libflashplayer.anacrontab"
remove )
rm "/home/$user_/.config/anacron/spool/getFP"* &>/dev/null
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
rm "$fileAnacron"
;;
esac
}
# 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)"
local verInstall="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
plugin_aJour="ok"
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"
@ -309,8 +308,6 @@ fflash_install(){
mkdir -p "$dirInstall"
cp -f "$dirTemp"libflashplayer.so "$dirInstall/"
rm -Rf "$dirTemp"
# marqueur version
echo "$verFlash" > "$dirInstall/libflashplayer.version"
# droits user si jamais installation par root
chown -R "$user_": "$dirInstall"
@ -326,12 +323,12 @@ fflash_upgrade(){
# suppression du plugin
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" &>/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_"
local verInstall="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
rm "$dirInstall/libflashplayer.so"
rm "$dirInstall/libflashplayer.maj" &>/dev/null # ancien fichier éventuel
rm "$dirInstall/libflashplayer.version" &>/dev/null # ancien fichier éventuel
f__info "$GREEN FlashPlayer $verInstall désinstallé pour $user_"
f__log "FlashPlayer $verInstall désinstallé pour $user_"
}
#initialisation
@ -339,7 +336,10 @@ f__affichage
f__user
verFlash="na"
f__requis "wget file tar"
fileLogs="/var/log/sdeb_getFlash.log"
dirInstall="/home/$user_/.mozilla/plugins"
fileAnacron="$dirInstall/libflashplayer.anacrontab"
urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ -e "$dirInstall/libflashplayer.so" ] && flash_installed="ok" || flash_installed="ko"
@ -348,6 +348,9 @@ dirname "$0" | grep -q 'bin' || fscript_install
# détection droits inappropriés sur le script, cas de figure sur version de dev
[ "$1" != "sysremove" ] && [ -e "/opt/bin/$script" ] && ls -l "/opt/bin/$script" | grep -q 'root' && f__error "bug sécu 01" \
"veuillez désinstaller le script et le réinstaller" "voir: $urlNotice#supprimer-le-script"
# détection ancien système de logs via syslog
[ -w "$fileLogs" ] || 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/getFirefox/#installation-rapide-du-script"
case "$1" in
"install" )

View File

@ -1,8 +1,12 @@
# changelog getFlashPlayer
## todo
## 2.8.0 30/07/2017
## 2.7.0 27/07/2017
* lifting
* fix bug mineur: pas d'inscription superflue dans crontab si plusieurs installations scripts successives
* renommage anacrontab
## 2.7.0 28/07/2017
* mieux: fichier log spécifique mais nécessite réinstallation en root (pas de mise à jour)
* mieux: logs d'évènements majeurs