From eb474fe29b02b5885a5aa4a689852ab539026571 Mon Sep 17 00:00:00 2001 From: kyodev Date: Wed, 21 Jun 2017 20:15:27 +0200 Subject: [PATCH] 1.0.0 --- docs/scripts/getFlashPlayer.md | 191 +++++++++++++++++--------- scripts/getFlashPlayer | 238 ++++++++++++++++++++++----------- 2 files changed, 285 insertions(+), 144 deletions(-) diff --git a/docs/scripts/getFlashPlayer.md b/docs/scripts/getFlashPlayer.md index dcc2605..37916a1 100644 --- a/docs/scripts/getFlashPlayer.md +++ b/docs/scripts/getFlashPlayer.md @@ -1,6 +1,16 @@ # getFlashPlayer -**version 0.9.x** +**version 1.0.x** + + +### install script, raccourci rapide: + +**en root**: +```shell +wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer && chmod +x getFlasPlayer && \ + ./getFlashPlayer && getFlashPlayer +``` + ## charger le script @@ -9,6 +19,7 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer chmod +x getFlasPlayer ``` + ## installation du script en **root**, pour installer ou mettre à jour le script: ```shell @@ -24,16 +35,18 @@ exit \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.2 - 12/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 getFlashPlayer est installé dans le système. appel du script par getFlashPlayer (sans ./) - ``` - * le script est maintenant dans le système et tout utilisateur peut s'en servir. - * si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois ( en juin 2017), - il sera **désinstallé**. - * si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant. + * le script est maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien (_/usr/local/bin/getFlashPlayer_) + et tout utilisateur peut s'en servir + * le script est inscrit dans la crontab utilisateur, une mise à jour de la version **release** sera faite + [périodiquement](#tache-planifiee) + si disponible (pas de téléchargement d'archive en aveugle). + * si le paquet `flashplugin-nonfree` est présent, il sera **désinstallé**. + * si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant ## help @@ -47,7 +60,7 @@ lancer le script sans arguments: `getFlashPlayer` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.3 - 16/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 ----------------------------------------------------------------------- ./getFlashPlayer : installation du script dans le système, en ROOT @@ -55,6 +68,7 @@ lancer le script sans arguments: `getFlashPlayer` getFlashPlayer install : téléchargement & installation & update Flash getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer version : version en ligne de FlashPlayer + getFlashPlayer upgrade : MAJ si disponible et si version non test ---- getFlashPlayer test : installation version de test de FlashPlayer ---- @@ -74,7 +88,6 @@ lancer le script sans arguments: `getFlashPlayer` de fait... Il sera donc bloqué à plus ou moins court terme pas les navigateurs majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... - ``` @@ -82,16 +95,16 @@ lancer le script sans arguments: `getFlashPlayer` `getFlashPlayer install` - * FlashPlayer est installé, en étant directement chargé du site Adobe. - * l'installation est faite pour l'utilisateur courant. - * lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. - * seule la bibliothèque est installée comme plugin Firefox (uniquement). FlashPlayer pourra être configuré - au clic droit dans le navigateur. le système n'est pas encombré. - * après installation, les fichiers inutiles sont effacés. - * **mise à jour** du plugin éventuellement installé + * FlashPlayer est installé, en étant directement chargé du site Adobe + * lancer le script pour chaque utilisateur ayant ouvert une session + * **seule la bibliothèque** est installée comme plugin Firefox. FlashPlayer pourra être configuré + au clic droit dans le navigateur. le système n'est pas encombré inutilement + * après installation, les fichiers inutiles sont effacés * pour vérifier le bon fonctionnement, vous pouvez aller [sur le site](http://get.adobe.com/flashplayer/about/) - * théoriquement, inutile de redémarrer Firefox + * _théoriquement_, inutile de redémarrer Firefox * en cas de soucis, vérifier dans `Outils/Modules complémentaires/plugins`: _shockwave flash_ doit être **activé** + * téléchargement et mise à jour forcés du plugin éventuellement installé, à la différence + de [_getFlashPlayer install_](#mise-a-jour) ```text _ _____ _ _ ____ _ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ @@ -100,7 +113,7 @@ lancer le script sans arguments: `getFlashPlayer` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.2 - 12/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on ne peut pas connaître le code source, ni l'utiliser sans conditions, @@ -111,22 +124,22 @@ lancer le script sans arguments: `getFlashPlayer` Il sera donc bloqué à plus ou moins court terme pas les navigateurs majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... - version FlashPlayer en ligne: 25.0.0.171 + version FlashPlayer en ligne: 26.0.0.131 - installation FlashPlayer, version 25.0.0.171 + installation FlashPlayer, version 26.0.0.131 ---2017-06-12 10:35:18-- https://fpdownload.adobe.com/get/flashplayer/pdc/25.0.0.171/flash_player_npapi_linux.i386.tar.gz +--2017-06-18 15:33:59-- https://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.131/flash_player_npapi_linux.i386.tar.gz Résolution de fpdownload.adobe.com (fpdownload.adobe.com)… 23.206.45.82 Connexion à fpdownload.adobe.com (fpdownload.adobe.com)|23.206.45.82|:443… connecté. requête HTTP transmise, en attente de la réponse… 200 OK -Taille : 8490374 (8,1M) [application/x-gzip] -Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » +Taille : 8490534 (8,1M) [application/x-gzip] +Sauvegarde en : « /tmp/getFlashPlayer-13385/flash_player_npapi_linux.i386.tar.gz » -/tmp/getFlashPlayer/flash_ 100%[=======================================>] 8,10M 3,32MB/s in 2,4s +/tmp/getFlashPlayer-13385/fla 100%[================================================>] 8,10M 4,04MB/s in 2,0s -2017-06-12 10:35:21 (3,32 MB/s) — « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490374/8490374] +2017-06-18 15:34:01 (4,04 MB/s) — « /tmp/getFlashPlayer-13385/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490534/8490534] - FlashPlayer est installé. + FlashPlayer 26.0.0.131 est installé pour kyodev Pour tester: http://get.adobe.com/flashplayer/about/ ``` @@ -135,7 +148,6 @@ Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz  `getFlashPlayer remove` ```text - _ _____ _ _ ____ _ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ / _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__| @@ -143,14 +155,15 @@ Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz  \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.3 - 16/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 - FlashPlayer est désinstallé. + FlashPlayer est désinstallé pour kyodev ``` - * le plugin est effacé du profil Mozilla de l'utilisateur courant. - * lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. - * si le répertoire _plugins_ est vide, il sera effacé + * le plugin est effacé du profil Mozilla de l'utilisateur + * lancer le script pour chaque utilisateur ayant ouvert la session + * si le répertoire _plugins/_ est vide, il sera effacé + * cela ne supprime pas le script _getFlashPlayer_ du système ## version en ligne @@ -164,19 +177,24 @@ Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz  \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.3 - 16/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 - version FlashPlayer en ligne: 26.0.0.126 + version FlashPlayer en ligne: 26.0.0.131 - installé: 25.0.0.171, MAJ à faire + version installée: 26.0.0.121, mise à jour possible ``` * affiche la version en ligne de FlashPlayer - * compare, si possible (version **release**), avec la version installée. + * compare, si possible (version **release**) et installée, avec la version installée ## mise à jour -idem [installation](#installation-version-release): `getFlashPlayer install` + * mise à jour si une nouvelle version est disponible en ligne **et** si ce n'est pas la version de test + qui est installée + * à la différence de [_getFlashPlayer install_](#installation-version-release) un téléchargement et + une installation ne sont pas forcés. il n'y aura téléchargement que si nouvelle version possible + +`getFlashPlayer upgrade` ```text _ _____ _ _ ____ _ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ @@ -185,7 +203,13 @@ idem [installation](#installation-version-release): `getFlashPlayer install` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.3 - 16/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 + + getFlashPlayer 1.0.0: upgrade FlashPlayer + + version FlashPlayer en ligne: 26.0.0.131 + + installée: 26.0.0.121, mise à jour possible FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on ne peut pas connaître le code source, ni l'utiliser sans conditions, @@ -196,27 +220,70 @@ idem [installation](#installation-version-release): `getFlashPlayer install` Il sera donc bloqué à plus ou moins court terme pas les navigateurs majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... - version FlashPlayer en ligne: 26.0.0.126 + installation FlashPlayer, version 26.0.0.131 - installé: 25.0.0.171, MAJ à faire - - installation FlashPlayer, version 26.0.0.126 - ---2017-06-16 12:33:13-- https://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.126/flash_player_npapi_linux.i386.tar.gz +--2017-06-18 16:34:32-- https://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.131/flash_player_npapi_linux.i386.tar.gz Résolution de fpdownload.adobe.com (fpdownload.adobe.com)… 23.206.45.82 Connexion à fpdownload.adobe.com (fpdownload.adobe.com)|23.206.45.82|:443… connecté. requête HTTP transmise, en attente de la réponse… 200 OK -Taille : 8490374 (8,1M) [application/x-gzip] -Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » +Taille : 8490534 (8,1M) [application/x-gzip] +Sauvegarde en : « /tmp/getFlashPlayer-28058/flash_player_npapi_linux.i386.tar.gz » -/tmp/getFlashPlayer/flash_ 100%[=======================================>] 8,10M 2,85MB/s in 2,8s +/tmp/getFlashPlayer-28058/fla 100%[================================================>] 8,10M 3,93MB/s in 2,1s -2017-06-16 12:33:16 (2,85 MB/s) — « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490374/8490374] +2017-06-18 16:34:35 (3,93 MB/s) — « /tmp/getFlashPlayer-28058/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490534/8490534] - FlashPlayer est installé. - Pour tester: http://get.adobe.com/flashplayer/about/ + FlashPlayer mis à jour en 26.0.0.131 pour kyodev ``` +pas de mise à jour disponible: +```text + _ _____ _ _ ____ _ + __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ + / _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__| + | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | + \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| + |___/ |___/ + + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 + + getFlashPlayer 1.0.0: upgrade FlashPlayer + + version FlashPlayer en ligne: 26.0.0.131 + + version à jour + + FlashPlayer est à jour pour kyodev +``` + + +## vérifier la date de mise à jour + +`date -r ~/.mozilla/plugins/libflashplayer.maj` +```text + lundi 19 juin 2017, 16:00:02 (UTC+0200) +``` + + +## tâche planifiée + +* la mise à jour possible est testée toutes les **semaines*** +* si une nouvelle version existe, le téléchargement est initié et l'installation du plugin est faite +* pas de nouvelle version: pas de téléchargement +* _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même lors d'arrêts du Pc + +dans le syslog: `cat /var/log/syslog | grep Flash` +```text +Jun 19 15:00:02 NB11 kyodev[16342]: getFlashPlayer 1.0.0: upgrade +Jun 19 15:00:07 NB11 kyodev[16362]: FlashPlayer mis à jour en 26.0.0.131 pour kyodev +``` +ou +```text +Jun 19 16:00:01 NB11 kyodev[16614]: getFlashPlayer 1.0.0: upgrade +Jun 19 16:00:03 NB11 kyodev[16623]: FlashPlayer non mis à jour pour kyodev +``` + + ## supprimer le script sur le systeme en **root**: `getFlashPlayer sysremove` @@ -228,10 +295,13 @@ en **root**: `getFlashPlayer sysremove` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.2 - 12/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 getFlashPlayer est supprimé du système. ``` + * effacement du script dans le système (_/opt/bin_) + * effacement de l'inscription dans la crontab utilisateur + * cela ne supprime pas un éventuel plugin installé ## installation version _test_ @@ -245,7 +315,7 @@ en **root**: `getFlashPlayer sysremove` \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.9.3 - 16/06/2017 + pour Firefox sur Debian, version 1.0.0 - 18/06/2017 FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on ne peut pas connaître le code source, ni l'utiliser sans conditions, @@ -258,19 +328,19 @@ en **root**: `getFlashPlayer sysremove` installation FlashPlayer, version alternative de test ---2017-06-16 12:54:47-- https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/flash_player_npapi_linux.i386.tar.gz +--2017-06-19 11:33:36-- https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/flash_player_npapi_linux.i386.tar.gz Résolution de fpdownload.macromedia.com (fpdownload.macromedia.com)… 92.122.201.82 Connexion à fpdownload.macromedia.com (fpdownload.macromedia.com)|92.122.201.82|:443… connecté. requête HTTP transmise, en attente de la réponse… 200 OK Taille : 8490917 (8,1M) [application/x-gzip] -Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » +Sauvegarde en : « /tmp/getFlashPlayer-7101/flash_player_npapi_linux.i386.tar.gz » -/tmp/getFlashPlayer/flash_ 100%[=======================================>] 8,10M 3,09MB/s in 2,6s +/tmp/getFlashPlayer-7101/flas 100%[==============================================>] 8,10M 4,22MB/s in 1,9s -2017-06-16 12:54:50 (3,09 MB/s) — « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490917/8490917] +2017-06-19 11:33:39 (4,22 MB/s) — « /tmp/getFlashPlayer-7101/flash_player_npapi_linux.i386.tar.gz » sauvegardé [8490917/8490917] - FlashPlayer est installé. - Pour tester: http://get.adobe.com/flashplayer/about/ + FlashPlayer test est installé pour kyodev + Pour tester: http://get.adobe.com/flashplayer/about/ ``` * utilise une version de test en développement sur une adresse alternative. la pérennité de cette url ou @@ -280,11 +350,6 @@ Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz  * la version peut être déterminée sur la [page de test](http://get.adobe.com/flashplayer/about/) -## évolution - - * lancement upgrade dans un cron? toutes les semaines ou mois? - - ## sources sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer) diff --git a/scripts/getFlashPlayer b/scripts/getFlashPlayer index e041a81..6499dac 100755 --- a/scripts/getFlashPlayer +++ b/scripts/getFlashPlayer @@ -1,14 +1,14 @@ #!/bin/bash -version="0.9.3" +version="1.0.0" projet="Kyodev" contact="https://framagit.org/kyodev/kyopages/issues" -date="16/06/2017" +date="18/06/2017" script="getFlashPlayer" ##### license LPRAB/WTFPL # auteurs: kyodev -# contibuteurs: coyotus +# contibuteur: coyotus # idée: naguam ##### @@ -37,52 +37,84 @@ echo -e "$YELLOW pour Firefox sur Debian, version $version - $date\n$COLOR #### fonctions diverses ================================================ + # user ayant initié la session graphique, assigne $user_ (<>root) +f__user(){ + #if [ $USER =="root" ]; then user_=$(echo $XAUTHORITY | sed -E 's;/home/(.*)/\.Xauthority;\1;'); else user_=$USER #kyodev + #user_=$(echo $XAUTHORITY | sed -E 's;/home/(.*)/\.Xauthority;\1;') # kyodev + #if [ -e /home/"$user_"/.Xauthority ]; then user_=$USER; fi # au pire si root, pas de plugin détecté dans le home root + # si root (lors sysinstall) on prend xauthority, sinon (cron?) on prend euid + if [ $USER == "root" ]; then + user_=$(echo $XAUTHORITY | sed -E 's;/home/(.*)/\.Xauthority;\1;'); + else user_=$(grep "$EUID" /etc/passwd | awk -F ":" '{ print $1 }'); + fi +} + + # test cnx réseau et résolution adobe.com, return 0 si ok else 1 +f__cnxTest(){ + ping -c 1 adobe.com &>/dev/null || return 1 +} + # sortie sur erreur -f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu, sortie du script +f__error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu, sortie du script echo -e "\n$RED Erreur critique: $1 $COLOR" for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done echo "$COLOR" + logger --id -p user.err "$script $version: $*" exit 1 } # affichage information -f_info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin +f__info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin echo -e " $BLUE $@ $COLOR\n" } + # syslog & affichage information +f__syslogInfo() { # inscription syslog $1, en user.info & f__info $1 + logger --id -p user.info "$1" + f__info "$1" +} + #debian? return 0 else 1 -f_debian(){ +f__debian(){ if [ -f /etc/debian_version ]; then return 0; else return 1; fi } # root? return 0 else 1 -f_root(){ +f__root(){ if [ $EUID -eq 0 ]; then return 0; else return 1; fi } # script en /bin? return 0 si bin, 1 si local -f_scriptBin(){ - # echo egrep: "-$(echo $0 | grep -Eo '\.\/')-" +f__scriptBin(){ if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi } #### fonctions script ================================================== -user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/ Firefox" - # version Flash en ligne & installée, $verFlash, $verInstall, $user_agent, $urlOnline, si $1="quiet", pas d'affichage +user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:52.0) Gecko/ Firefox" + + # version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptodate=""|ko, $urlOnline, f_versionFlash(){ urlOnline="https://get.adobe.com/flashplayer/" - verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \ - grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') - verInstall=$(cat /home/"$USER"/.mozilla/plugins/libflashplayer.version 2>/dev/null) - if [ "$1" != "quiet" ]; then f_info "version FlashPlayer en ligne: $verFlash"; fi - if [ -e /home/"$USER"/.mozilla/plugins/libflashplayer.version ] && [ "$verInstall" != "flashTest" ]; then - if [ "$verInstall" == "$verFlash" ]; then f_info "version à jour"; else f_info "installé: $verInstall"", MAJ à faire"; fi - fi + if ! f__cnxTest; then f__error "connection impossible ou site adobe injoignable"; fi + verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent="$user_agent" -nv -qO - "$urlOnline" | \ + grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') || verFlash="na" + verInstall=$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null) || verInstall="" + uptodate="" + if [ $verFlash == "na" ]; then f__info "version FlashPlayer non accessible"; + else f__info "version FlashPlayer en ligne: $verFlash"; fi + if [ "$verInstall" != "" ] && [ "$verInstall" != "flashTest" ]; then + if [ "$verInstall" == "$verFlash" ]; then f__info "version à jour"; + else + f__info "version installée: $verInstall"", mise à jour possible" + uptodate="ko" + fi + elif [ "$verInstall" == "" ]; then f__info "FlashPlayer non installé"; + elif [ "$verInstall" == "flashTest" ]; then f__info "FlashPlayer, version test, installé"; fi } - # pas bô ce soft :( + # pas beau ce soft :( f_avertissement(){ cat << 'EOF' FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on @@ -107,6 +139,7 @@ cat << 'EOF' getFlashPlayer install : téléchargement & installation & update Flash getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer version : version en ligne de FlashPlayer + getFlashPlayer upgrade : MAJ si disponible et si version non test ---- getFlashPlayer test : installation version de test de FlashPlayer ---- @@ -124,121 +157,164 @@ EOF printf $COLOR } +f_cronAnacron(){ +case "$1" in + "install" ) + # création répertoire plugin/ +mkdir -p "/home/$user_/.mozilla/plugins" +chown "$user_": "/home/$user_/.mozilla/plugins" + # table anacron +echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > /home/"$user_"/.mozilla/plugins/libflashplayer.anacrontab + ## test: anacron journalier echo "1 15 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> /home/"$user_"/.mozilla/plugins/libflashplayer.anacrontab +chown "$user_": /home/"$user_"/.mozilla/plugins/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 anancron +echo "@hourly $user_ /usr/sbin/anacron -t /home/"$user_"/.mozilla/plugins/libflashplayer.anacrontab -S /home/"$user_"/.config/anacron/spool" >> /etc/crontab + ;; + + "remove" ) +rm /home/"$user_"/.config/anacron/spool/getFP +sed -i "\;^\@hourly.*libflashplayer.anacrontab.*$;d" /etc/crontab + ;; # désinstallation +esac +} + # install du script dans le système f_sysinstall(){ - if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi + if ! f__root ; then f__error "vous devez être ROOT pour installer ce script dans le système"; fi # on vire 'flashplugin-nonfree' si installé if [ "$( dpkg-query -l flashplugin-nonfree &>/dev/null | grep -Eo ^ii)" == "ii" ]; then apt-get purge flashplugin-nonfree; fi # installation dans /opt mkdir -p /opt/bin/ - cp -d "$0" /opt/bin/ + cp -d "$script" /opt/bin/ ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null - rm "$0" &>/dev/null - f_info "$GREEN$script est installé dans le système.\n$BLUE appel du script par$GREEN $script$BLUE (sans ./)" + rm "$script" &>/dev/null + + # cron/anacron install + f_cronAnacron install + + f__info "$GREEN$script est installé dans le système.\n$BLUE appel du script par$GREEN $script$BLUE (sans ./)" exit 0 } # suppression du script dans le système f_sysremove(){ - if ! f_root ; then f_error "vous devez être ROOT pour supprimer ce script dans le système"; fi + if ! f__root ; then f__error "vous devez être ROOT pour supprimer ce script dans le système"; fi + # suppression de /opt rm /opt/bin/"$script" &>/dev/null unlink /usr/local/bin/"$script" &>/dev/null - f_info "$GREEN$script est supprimé du système.\n" + + # cron/anacron install + f_cronAnacron remove + + f__info "$GREEN$script est supprimé du système.\n" } - # install plugin dans config user mozilla + # install plugin dans config user mozilla, $1 = test|_autres_ f_install(){ - if f_root ; then f_error "vous ne pouvez pas installer le plugin en tant que ROOT"; fi - # debian? sinon dehors / utile? / - if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi - - # information soft daube f_avertissement - # architecture > $architecture (version release) + # architecture -> $architecture (version release) if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi # calcul $file, affichage version pendant l'install, calcul $url file="flash_player_npapi_linux.$architecture.tar.gz" - if [ "$flashTest" == "yes" ]; then - # on change l'architecture pour test + if [ "$1" == "test" ]; then + # on change l'architecture pour la version test if [ "$architecture" == "x86_64" ]; then architecture='linux64'; else architecture='linux32'; fi - f_info "installation FlashPlayer, version alternative de test" + verFlash="test" + f__info "installation FlashPlayer, version alternative de test" url="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/$architecture/" else - f_versionFlash - f_info "installation FlashPlayer, version $verFlash" + if [ $verFlash == "na" ] || [ $verFlash == "" ]; then f_versionFlash; fi + f__info "installation FlashPlayer, version $verFlash" url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/" fi # dossier temporaire de travail, création - dirTemp="/tmp/$script/" + dirTemp="/tmp/$script-$RANDOM/" mkdir -p "$dirTemp" - # chargement - wget -c --user-agent="$user_agent" -O "$dirTemp$file" "$url$file" - + # chargement archive flashplayer + wget -c --user-agent="$user_agent" -O "$dirTemp""$file" "$url""$file" # gestion erreur wget / à peaufiner? / if [ "$?" != "0" ]; then - f_error "problème au chargement, connexion défaillante?" \ - "Si persistance, merci de prévenir $projet" \ - "$contact" + f__error "problème au chargement, connexion défaillante? réessayer" \ + "Si persistance, merci de prévenir $projet" "$contact" fi # décompression archive téléchargée dans dossier de travail - tar -xaf "$dirTemp$file" -C "$dirTemp" + tar -xaf "$dirTemp""$file" -C "$dirTemp" - # création répertoire, copie de la biblio dans la config user mozilla et droits(utile?), on efface le temporaire - mkdir -p "/home/$USER/.mozilla/plugins" - cp "$dirTemp"libflashplayer.so "/home/$USER/.mozilla/plugins/" + # copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire + cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/" rm -Rf "$dirTemp" - # marqueur version - if [ "$flashTest" == "yes" ]; then echo "flashTest" > /home/"$USER"/.mozilla/plugins/libflashplayer.version; else echo "$verFlash" > /home/"$USER"/.mozilla/plugins/libflashplayer.version; fi + # marqueur version et maj dans plugins/ user mozilla + if [ "$1" == "test" ]; then echo "flashTest" > /home/"$user_"/.mozilla/plugins/libflashplayer.version; + else echo "$verFlash" > /home/"$user_"/.mozilla/plugins/libflashplayer.version; fi + touch /home/"$user_"/.mozilla/plugins/libflashplayer.maj - # the end - f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/" + # droits user si install par root + chown -R "$user_": /home/"$user_"/.mozilla/plugins + + if [ "$2" != "upgrade" ]; then f__info "$GREEN""FlashPlayer $verFlash est installé pour $user_\n\t" \ + "$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/"; fi } -# # suppression du plugin + # suppression du plugin f_remove(){ - if f_root ; then f_error "vous ne pouvez pas désinstaller le plugin en tant que ROOT"; fi # on efface le plugin et le répertoire si vide - rm -f "/home/$USER/.mozilla/plugins/"libflashplayer.* - rm -d "/home/$USER/.mozilla/plugins/" &>/dev/null - f_info "$GREEN""FlashPlayer est désinstallé.\n" + rm -f "/home/$user_/.mozilla/plugins/"libflashplayer.* + rm -d "/home/$user_/.mozilla/plugins/" &>/dev/null + + f__info "$GREEN""FlashPlayer $version est désinstallé pour $user_\n" } -### traitements arguments ============================================= -if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" -elif [ "$1" == "install" ]; then cmd="install"; flashTest='no' -elif [ "$1" == "remove" ]; then cmd="remove" -elif [ "$1" == "version" ]; then cmd="version" -elif [ "$1" == "test" ]; then cmd="install"; flashTest='yes' -elif [ "$1" == "sysremove" ]; then cmd="sysremove" -else cmd="help" -fi +### début script ======================================================= + + # debian? sinon dehors / utilité? / +if ! f__debian ; then f__error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi + + # traitements arguments +if [ "$#" -gt 1 ]; then f__info "$RED trop d'arguments"; f_help; exit 1; fi + #initialisation +f__user +verFlash="na" #### installation du script si pas dans le système ===================== -if ! f_scriptBin ; then f_sysinstall; fi +if ! f__scriptBin ; then f_sysinstall; fi -#### désinstallation du script ========================================= -if [ "$cmd" == "sysremove" ]; then f_sysremove; fi - -#### help ============================================================== -if [ "$cmd" == "help" ]; then f_help; f_avertissement; fi - -#### version en ligne ================================================== -if [ "$cmd" == "version" ]; then f_versionFlash; fi - -#### installation ====================================================== -if [ "$cmd" == "install" ]; then f_install; fi - -#### désinstallation =================================================== -if [ "$cmd" == "remove" ]; then f_remove; fi +case "$1" in + "install" ) + f_install "release" ;; # installation + "test" ) + f_install "test" ;; # install version test + "remove" ) + f_remove ;; # désinstallation + "version" ) + f_versionFlash ;; # version en ligne & installée + "sysremove" ) + f_sysremove ;; # désinstallation du script + "upgrade" ) + f__syslogInfo "$script $version: upgrade" + if [ -e /home/"$user_"/.mozilla/plugins/libflashplayer.maj ]; then touch /home/"$user_"/.mozilla/plugins/libflashplayer.maj; fi + f_versionFlash + if [ "$uptodate" == "ko" ]; then + f_install "release" "upgrade" + f__syslogInfo "FlashPlayer mis à jour en $verFlash pour $user_" + else f__syslogInfo "FlashPlayer non mis à jour pour $user_"; fi + ;; # upgrade si MAJ possible + * ) + f_help + f_avertissement + ;; # affichage help par défaut +esac exit 0