This commit is contained in:
kyodev 2017-06-21 20:15:27 +02:00
parent 1e6fbbc0f2
commit eb474fe29b
2 changed files with 285 additions and 144 deletions

View File

@ -1,6 +1,16 @@
# getFlashPlayer # 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 ## charger le script
@ -9,6 +19,7 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer
chmod +x getFlasPlayer chmod +x getFlasPlayer
``` ```
## installation du script ## installation du script
en **root**, pour installer ou mettre à jour le script: en **root**, pour installer ou mettre à jour le script:
```shell ```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. getFlashPlayer est installé dans le système.
appel du script par getFlashPlayer (sans ./) appel du script par getFlashPlayer (sans ./)
``` ```
* le script est maintenant dans le système et tout utilisateur peut s'en servir. * le script est maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien (_/usr/local/bin/getFlashPlayer_)
* si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois ( en juin 2017), et tout utilisateur peut s'en servir
il sera **désinstallé**. * le script est inscrit dans la crontab utilisateur, une mise à jour de la version **release** sera faite
* si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant. [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 ## 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 ./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 install : téléchargement & installation & update Flash
getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : version en ligne 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 getFlashPlayer test : installation version de test de FlashPlayer
---- ----
@ -74,7 +88,6 @@ lancer le script sans arguments: `getFlashPlayer`
de fait... de fait...
Il sera donc bloqué à plus ou moins court terme pas les navigateurs Il sera donc bloqué à plus ou moins court terme pas les navigateurs
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
``` ```
@ -82,16 +95,16 @@ lancer le script sans arguments: `getFlashPlayer`
`getFlashPlayer install` `getFlashPlayer install`
* FlashPlayer est installé, en étant directement chargé du site Adobe. * FlashPlayer est installé, en étant directement chargé du site Adobe
* l'installation est faite pour l'utilisateur courant. * lancer le script pour chaque utilisateur ayant ouvert une session
* lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. * **seule la bibliothèque** est installée comme plugin Firefox. FlashPlayer pourra être configuré
* 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é inutilement
au clic droit dans le navigateur. le système n'est pas encombré. * après installation, les fichiers inutiles sont effacés
* après installation, les fichiers inutiles sont effacés.
* **mise à jour** du plugin éventuellement installé
* pour vérifier le bon fonctionnement, vous pouvez aller [sur le site](http://get.adobe.com/flashplayer/about/) * 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é** * 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 ```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 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, 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 Il sera donc bloqué à plus ou moins court terme pas les navigateurs
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... 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 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é. 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 requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 8490374 (8,1M) [application/x-gzip] Taille : 8490534 (8,1M) [application/x-gzip]
Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » 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/ 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` `getFlashPlayer remove`
```text ```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. * le plugin est effacé du profil Mozilla de l'utilisateur
* lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. * lancer le script pour chaque utilisateur ayant ouvert la session
* si le répertoire _plugins_ est vide, il sera effacé * si le répertoire _plugins/_ est vide, il sera effacé
* cela ne supprime pas le script _getFlashPlayer_ du système
## version en ligne ## 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 * 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 ## 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 ```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 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, 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 Il sera donc bloqué à plus ou moins court terme pas les navigateurs
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... 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 --2017-06-18 16:34:32-- https://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.131/flash_player_npapi_linux.i386.tar.gz
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
Résolution de fpdownload.adobe.com (fpdownload.adobe.com)… 23.206.45.82 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é. 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 requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 8490374 (8,1M) [application/x-gzip] Taille : 8490534 (8,1M) [application/x-gzip]
Sauvegarde en : « /tmp/getFlashPlayer/flash_player_npapi_linux.i386.tar.gz » 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é. FlashPlayer mis à jour en 26.0.0.131 pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/
``` ```
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 ## supprimer le script sur le systeme
en **root**: `getFlashPlayer sysremove` 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. 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_ ## 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 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, 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 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 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é. 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 requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 8490917 (8,1M) [application/x-gzip] 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é. FlashPlayer test est installé pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/ 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 * 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/) * 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 ## sources
sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer) sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer)

View File

@ -1,14 +1,14 @@
#!/bin/bash #!/bin/bash
version="0.9.3" version="1.0.0"
projet="Kyodev" projet="Kyodev"
contact="https://framagit.org/kyodev/kyopages/issues" contact="https://framagit.org/kyodev/kyopages/issues"
date="16/06/2017" date="18/06/2017"
script="getFlashPlayer" script="getFlashPlayer"
##### license LPRAB/WTFPL ##### license LPRAB/WTFPL
# auteurs: kyodev # auteurs: kyodev
# contibuteurs: coyotus # contibuteur: coyotus
# idée: naguam # idée: naguam
##### #####
@ -37,52 +37,84 @@ echo -e "$YELLOW pour Firefox sur Debian, version $version - $date\n$COLOR
#### fonctions diverses ================================================ #### 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 # 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" echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done
echo "$COLOR" echo "$COLOR"
logger --id -p user.err "$script $version: <erreur> $*"
exit 1 exit 1
} }
# affichage information # 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" 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 #debian? return 0 else 1
f_debian(){ f__debian(){
if [ -f /etc/debian_version ]; then return 0; else return 1; fi if [ -f /etc/debian_version ]; then return 0; else return 1; fi
} }
# root? return 0 else 1 # root? return 0 else 1
f_root(){ f__root(){
if [ $EUID -eq 0 ]; then return 0; else return 1; fi if [ $EUID -eq 0 ]; then return 0; else return 1; fi
} }
# script en /bin? return 0 si bin, 1 si local # script en /bin? return 0 si bin, 1 si local
f_scriptBin(){ f__scriptBin(){
# echo egrep: "-$(echo $0 | grep -Eo '\.\/')-"
if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi
} }
#### fonctions script ================================================== #### fonctions script ==================================================
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/ Firefox" user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:52.0) Gecko/ Firefox"
# version Flash en ligne & installée, $verFlash, $verInstall, $user_agent, $urlOnline, si $1="quiet", pas d'affichage
# version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptodate=""|ko, $urlOnline,
f_versionFlash(){ f_versionFlash(){
urlOnline="https://get.adobe.com/flashplayer/" urlOnline="https://get.adobe.com/flashplayer/"
verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \ if ! f__cnxTest; then f__error "connection impossible ou site adobe injoignable"; fi
grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent="$user_agent" -nv -qO - "$urlOnline" | \
verInstall=$(cat /home/"$USER"/.mozilla/plugins/libflashplayer.version 2>/dev/null) grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') || verFlash="na"
if [ "$1" != "quiet" ]; then f_info "version FlashPlayer en ligne: $verFlash"; fi verInstall=$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null) || verInstall=""
if [ -e /home/"$USER"/.mozilla/plugins/libflashplayer.version ] && [ "$verInstall" != "flashTest" ]; then uptodate=""
if [ "$verInstall" == "$verFlash" ]; then f_info "version à jour"; else f_info "installé: $verInstall"", MAJ à faire"; fi if [ $verFlash == "na" ]; then f__info "version FlashPlayer non accessible";
fi 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(){ f_avertissement(){
cat << 'EOF' cat << 'EOF'
FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on 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 install : téléchargement & installation & update Flash
getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : version en ligne 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 getFlashPlayer test : installation version de test de FlashPlayer
---- ----
@ -124,121 +157,164 @@ EOF
printf $COLOR 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 # install du script dans le système
f_sysinstall(){ 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é # 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 if [ "$( dpkg-query -l flashplugin-nonfree &>/dev/null | grep -Eo ^ii)" == "ii" ]; then apt-get purge flashplugin-nonfree; fi
# installation dans /opt # installation dans /opt
mkdir -p /opt/bin/ 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 ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null
rm "$0" &>/dev/null rm "$script" &>/dev/null
f_info "$GREEN$script est installé dans le système.\n$BLUE appel du script par$GREEN $script$BLUE (sans ./)"
# 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 exit 0
} }
# suppression du script dans le système # suppression du script dans le système
f_sysremove(){ 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 # suppression de /opt
rm /opt/bin/"$script" &>/dev/null rm /opt/bin/"$script" &>/dev/null
unlink /usr/local/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(){ 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 f_avertissement
# architecture > $architecture (version release) # architecture -> $architecture (version release)
if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi
# calcul $file, affichage version pendant l'install, calcul $url # calcul $file, affichage version pendant l'install, calcul $url
file="flash_player_npapi_linux.$architecture.tar.gz" file="flash_player_npapi_linux.$architecture.tar.gz"
if [ "$flashTest" == "yes" ]; then if [ "$1" == "test" ]; then
# on change l'architecture pour test # on change l'architecture pour la version test
if [ "$architecture" == "x86_64" ]; then architecture='linux64'; else architecture='linux32'; fi 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/" url="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/$architecture/"
else else
f_versionFlash if [ $verFlash == "na" ] || [ $verFlash == "" ]; then f_versionFlash; fi
f_info "installation FlashPlayer, version $verFlash" f__info "installation FlashPlayer, version $verFlash"
url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/" url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/"
fi fi
# dossier temporaire de travail, création # dossier temporaire de travail, création
dirTemp="/tmp/$script/" dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
# chargement # chargement archive flashplayer
wget -c --user-agent="$user_agent" -O "$dirTemp$file" "$url$file" wget -c --user-agent="$user_agent" -O "$dirTemp""$file" "$url""$file"
# gestion erreur wget / à peaufiner? / # gestion erreur wget / à peaufiner? /
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
f_error "problème au chargement, connexion défaillante?" \ f__error "problème au chargement, connexion défaillante? réessayer" \
"Si persistance, merci de prévenir $projet" \ "Si persistance, merci de prévenir $projet" "$contact"
"$contact"
fi fi
# décompression archive téléchargée dans dossier de travail # 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 # copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire
mkdir -p "/home/$USER/.mozilla/plugins" cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/"
cp "$dirTemp"libflashplayer.so "/home/$USER/.mozilla/plugins/"
rm -Rf "$dirTemp" rm -Rf "$dirTemp"
# marqueur version # marqueur version et maj dans plugins/ user mozilla
if [ "$flashTest" == "yes" ]; then echo "flashTest" > /home/"$USER"/.mozilla/plugins/libflashplayer.version; else echo "$verFlash" > /home/"$USER"/.mozilla/plugins/libflashplayer.version; fi 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 # droits user si install par root
f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/" 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(){ 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 # on efface le plugin et le répertoire si vide
rm -f "/home/$USER/.mozilla/plugins/"libflashplayer.* rm -f "/home/$user_/.mozilla/plugins/"libflashplayer.*
rm -d "/home/$USER/.mozilla/plugins/" &>/dev/null rm -d "/home/$user_/.mozilla/plugins/" &>/dev/null
f_info "$GREEN""FlashPlayer est désinstallé.\n"
f__info "$GREEN""FlashPlayer $version est désinstallé pour $user_\n"
} }
### traitements arguments ============================================= ### début script =======================================================
if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments"
elif [ "$1" == "install" ]; then cmd="install"; flashTest='no' # debian? sinon dehors / utilité? /
elif [ "$1" == "remove" ]; then cmd="remove" if ! f__debian ; then f__error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi
elif [ "$1" == "version" ]; then cmd="version"
elif [ "$1" == "test" ]; then cmd="install"; flashTest='yes' # traitements arguments
elif [ "$1" == "sysremove" ]; then cmd="sysremove" if [ "$#" -gt 1 ]; then f__info "$RED trop d'arguments"; f_help; exit 1; fi
else cmd="help" #initialisation
fi f__user
verFlash="na"
#### installation du script si pas dans le système ===================== #### 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 ========================================= case "$1" in
if [ "$cmd" == "sysremove" ]; then f_sysremove; fi "install" )
f_install "release" ;; # installation
#### help ============================================================== "test" )
if [ "$cmd" == "help" ]; then f_help; f_avertissement; fi f_install "test" ;; # install version test
"remove" )
#### version en ligne ================================================== f_remove ;; # désinstallation
if [ "$cmd" == "version" ]; then f_versionFlash; fi "version" )
f_versionFlash ;; # version en ligne & installée
#### installation ====================================================== "sysremove" )
if [ "$cmd" == "install" ]; then f_install; fi f_sysremove ;; # désinstallation du script
"upgrade" )
#### désinstallation =================================================== f__syslogInfo "$script $version: upgrade"
if [ "$cmd" == "remove" ]; then f_remove; fi 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 exit 0