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 #!/bin/bash
version=2.7.0 version=2.8.0
date="28/07/2017" date="30/07/2017"
projet="simpledebian" projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFlashPlayer" script="getFlashPlayer"
@ -58,15 +58,12 @@ f__user(){
# log spécifique, fichier log limité à 10000octets, $1 message à loguer # log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){ f__log(){
if [ -w "/var/log/sdeb_getFlash.log" ]; then if [ -w "$fileLogs" ]; then
if [ "$(stat -c %s /var/log/sdeb_getFlash.log)" -ge "10000" ]; then if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
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"
else 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 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 fi
} }
@ -89,7 +86,7 @@ f__info() {
f__requis(){ f__requis(){
for i in $@; do for i in $@; do
if [ ! "$(which $i)" ]; then if [ ! "$(which $i)" ]; then
testDepends="ko" local testDepends="ko"
f__info "$RED vous devez avoir la commande $i pour exploiter ce script" f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
fi fi
done done
@ -130,9 +127,9 @@ fscript_install(){
# cron/anacron install # cron/anacron install
fscript_cronAnacron install fscript_cronAnacron install
# création fichier log # création fichier log
touch "/var/log/sdeb_getFlash.log" touch "$fileLogs"
chmod a+rwx "/var/log/sdeb_getFlash.log" chmod a+rwx "$fileLogs"
chown "$user_": "/var/log/sdeb_getFlash.log" chown "$user_": "$fileLogs"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev) [ -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__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" 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 # inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){ fscript_cronAnacron(){
case "$1" in case "$1" in
"install" ) install )
# création répertoire plugin/ if [ ! -e "$fileAnacron" ]; then
mkdir -p "$dirInstall" # création répertoire plugin/
chown "$user_": "$dirInstall" mkdir -p "$dirInstall"
# table anacron chown "$user_": "$dirInstall"
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$dirInstall/libflashplayer.anacrontab" # table anacron
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$dirInstall/libflashplayer.anacrontab" echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$fileAnacron"
chown "$user_": "$dirInstall/libflashplayer.anacrontab" ## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$fileAnacron"
# création spool anacron utilisateur chown "$user_": "$fileAnacron"
mkdir -p "/home/$user_/.config/anacron/spool" # création spool anacron utilisateur
chown "$user_": "/home/$user_/.config/anacron/spool" mkdir -p "/home/$user_/.config/anacron/spool"
# cron tab pour activation horaire anacron chown "$user_": "/home/$user_/.config/anacron/spool"
echo "@hourly $user_ /usr/sbin/anacron -t $dirInstall/libflashplayer.anacrontab -S /home/$user_/.config/anacron/spool" >> /etc/crontab # cron tab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S /home/$user_/.config/anacron/spool" >> /etc/crontab
fi
;; ;;
"remove" ) remove )
[ -e "/home/$user_/.config/anacron/spool/getFP" ] && rm "/home/$user_/.config/anacron/spool/getFP" rm "/home/$user_/.config/anacron/spool/getFP"* &>/dev/null
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
rm "$dirInstall/libflashplayer.anacrontab" rm "$fileAnacron"
;; ;;
esac esac
} }
# version Flash en ligne & installée, si $1="quiet" pas d'affichage, $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(){ 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" plugin_aJour="ok"
verFlash="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \ 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" sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na"
@ -309,8 +308,6 @@ fflash_install(){
mkdir -p "$dirInstall" mkdir -p "$dirInstall"
cp -f "$dirTemp"libflashplayer.so "$dirInstall/" cp -f "$dirTemp"libflashplayer.so "$dirInstall/"
rm -Rf "$dirTemp" rm -Rf "$dirTemp"
# marqueur version
echo "$verFlash" > "$dirInstall/libflashplayer.version"
# droits user si jamais installation par root # droits user si jamais installation par root
chown -R "$user_": "$dirInstall" chown -R "$user_": "$dirInstall"
@ -326,12 +323,12 @@ fflash_upgrade(){
# suppression du plugin # suppression du plugin
fflash_remove(){ fflash_remove(){
[ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer inexistant pour $user_\n" [ -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')" local verInstall="$(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 "$dirInstall/libflashplayer.so"
rm -f "$dirInstall/libflashplayer.so" rm "$dirInstall/libflashplayer.maj" &>/dev/null # ancien fichier éventuel
rm -f "$dirInstall/libflashplayer.version" rm "$dirInstall/libflashplayer.version" &>/dev/null # ancien fichier éventuel
f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_" f__info "$GREEN FlashPlayer $verInstall désinstallé pour $user_"
f__log "FlashPlayer $verFlashRemove désinstallé pour $user_" f__log "FlashPlayer $verInstall désinstallé pour $user_"
} }
#initialisation #initialisation
@ -339,7 +336,10 @@ f__affichage
f__user f__user
verFlash="na" verFlash="na"
f__requis "wget file tar" f__requis "wget file tar"
fileLogs="/var/log/sdeb_getFlash.log"
dirInstall="/home/$user_/.mozilla/plugins" dirInstall="/home/$user_/.mozilla/plugins"
fileAnacron="$dirInstall/libflashplayer.anacrontab"
urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ -e "$dirInstall/libflashplayer.so" ] && flash_installed="ok" || flash_installed="ko" [ -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 # 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" \ [ "$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" "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 case "$1" in
"install" ) "install" )

View File

@ -1,8 +1,12 @@
# changelog getFlashPlayer # 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: fichier log spécifique mais nécessite réinstallation en root (pas de mise à jour)
* mieux: logs d'évènements majeurs * mieux: logs d'évènements majeurs