This commit is contained in:
kyodev 2017-07-17 13:38:04 +02:00
parent c50d8ffd94
commit c13d387e25
3 changed files with 122 additions and 165 deletions

View File

@ -1,11 +1,9 @@
# getFlashPlayer # getFlashPlayer
**version 2.3.x**
**depuis la version 2.x, ce script se met à jour automatiquement, si possible, tous les 7 jours** **depuis la version 2.x, ce script se met à jour automatiquement, si possible, tous les 7 jours**
**voir: [dernière mise à jour manuelle du script](#mise-a-jour-du-script) **voir: [dernière mise à jour manuelle du script](#mise-a-jour-du-script)
**la version 2.1 permet l'installation manuelle d'un plugin téléchargé manuellement** **la version 2.1 permet l'installation manuelle d'une archive de plugin téléchargée manuellement**
**voir: [installation manuelle](#installation-manuelle)** **voir: [installation manuelle](#installation-manuelle)**
## installation raccourci: ## installation raccourci:
@ -25,15 +23,11 @@ chmod +x getFlashPlayer
## installation du script ## installation du script
en **root**, pour la première installation: en **root**, pour l'installation:
```shell ```shell
./getFlashPlayer ./getFlashPlayer
exit exit
``` ```
le script est dans le système, prêt à gérer l'installation du plugin Flash et ses mises à jour
**le plugin n'est pas encore installé**
```text ```text
_ _____ _ _ ____ _ _ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
@ -42,13 +36,15 @@ le script est dans le système, prêt à gérer l'installation du plugin Flash e
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.0 - 16/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
getFlashPlayer installé dans le système. getFlashPlayer installé dans le système.
maintenant, appel du script par: getFlashPlayer (sans ./) maintenant, appel du script par: getFlashPlayer (sans ./)
``` ```
* 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 maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien
(_/usr/local/bin/getFlashPlayer_) et tout utilisateur peut s'en servir.
**le plugin n'est pas encore installé**
* le script est inscrit dans la crontab utilisateur, une mise à jour du plugin et du script sera faite * le script est inscrit dans la crontab utilisateur, une mise à jour du plugin et du script sera faite
[périodiquement](#tache-planifiee) si disponible (pas de téléchargement d'archive en aveugle). [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 le paquet `flashplugin-nonfree` est présent, il sera **désinstallé**.
@ -66,11 +62,12 @@ su
wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer \ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer \
&& chmod +x getFlashPlayer && ./getFlashPlayer && chmod +x getFlashPlayer && ./getFlashPlayer
``` ```
à partir de la version 2.x, les mises à jour, automatiques ou manuelles peuvent se faire en _utilisateur_
## help ## help
lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlashPlayer help` lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlashPlayer help`
```text ```text
_ _____ _ _ ____ _ _ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
@ -79,7 +76,7 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
----------------------------------------------------------------------- -----------------------------------------------------------------------
./getFlashPlayer : installation du script dans le système, en ROOT ./getFlashPlayer : installation du script dans le système, en ROOT
@ -95,37 +92,23 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
getFlashPlayer sysremove : désinstall du script du système, en ROOT getFlashPlayer sysremove : désinstall du script du système, en ROOT
----------------------------------------------------------------------- -----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour Ce script doit être exécuté avec les droits root uniquement pour
la première installation et la suppression du script dans le système. la installation et la suppression du script dans le système.
Il désinstallera le paquet flashplugin-nonfree si présent. Il désinstallera le paquet flashplugin-nonfree si présent.
Seul le plugin sera installé, en tant que plugin Mozilla Firefox. Seul le plugin sera installé, en tant que plugin Mozilla Firefox.
Ce script devrait fonctionner sur Ubuntu.
----------------------------------------------------------------------- -----------------------------------------------------------------------
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on FlashPlayer n'est pas libre, c'est un programme 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,
ni le distribuer librement. ni le distribuer librement.
Il souffre de nombreuses vulnérabilités chroniques, depuis des années Il souffre de nombreuses vulnérabilités chroniques, depuis des années
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état sans que l'éditeur fasse beaucoup d'efforts pour corriger cela...
de fait... Il sera bloqué à plus ou moins court terme pas les navigateurs majeurs,
Il sera donc bloqué à plus ou moins court terme pas les navigateurs c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
``` ```
## installation plugin ## installation plugin
`getFlashPlayer install` `getFlashPlayer 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
* 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
_ _____ _ _ ____ _ _ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
@ -134,32 +117,41 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on FlashPlayer n'est pas libre, c'est un programme 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,
ni le distribuer librement. ni le distribuer librement.
Il souffre de nombreuses vulnérabilités chroniques, depuis des années Il souffre de nombreuses vulnérabilités chroniques, depuis des années
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état sans que l'éditeur fasse beaucoup d'efforts pour corriger cela...
de fait... Il sera bloqué à plus ou moins court terme pas les navigateurs majeurs,
Il sera donc bloqué à plus ou moins court terme pas les navigateurs 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.137
version FlashPlayer en ligne: 26.0.0.137 FlashPlayer non installé
installation FlashPlayer, version 26.0.0.137
FlashPlayer non installé /tmp/getFlashPlayer-3664/flash_pla 100%[======================================>] 8,10M 5,20MB/s in 1,6s
FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev
installation FlashPlayer, version 26.0.0.137 Pour tester: http://get.adobe.com/flashplayer/about/
/tmp/getFlashPlayer-14251/flash_pl 100%[======================================>] 8,10M 5,04MB/s in 1,6s
FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/
``` ```
* 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
* en cas de soucis, vérifier dans `Outils/Modules complémentaires/plugins`: _shockwave flash_ doit être **activé**
* le téléchargement et le mise à jour sont forcés,
à la différence de [_getFlashPlayer install_](#mise-a-jour), où le chargement et l'installation ne sont faits
que si nouvelle version
## installation manuelle ## installation manuelle
* [charger manuellement](https://get.adobe.com/fr/flashplayer/) Flashplayer en choisissant une * [charger manuellement](https://get.adobe.com/fr/flashplayer/) Flashplayer en choisissant une
@ -175,10 +167,9 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
installation manuelle flash_player_npapi_linux.i386.tar.gz
installation manuelle flash_player_npapi_linux.x86_64.tar.gz
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on FlashPlayer n'est pas libre, c'est un programme 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,
@ -190,8 +181,8 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela... majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/ Pour tester: http://get.adobe.com/flashplayer/about/
``` ```
@ -206,8 +197,7 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
FlashPlayer 26.0.0.137 désinstallé pour kyodev FlashPlayer 26.0.0.137 désinstallé pour kyodev
``` ```
@ -228,16 +218,13 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.0 - 16/07/2017 pour Firefox sur Debian, version 2.4.0b7 - 17/07/2017
version FlashPlayer en ligne: 26.0.0.137
version FlashPlayer en ligne: 26.0.0.137 FlashPlayer à jour
version script en ligne: 2.3.1, mise à jour possible
version FlashPlayer installée: 26.0.0.131 , mise à jour possible
version script en ligne: 2.3.1, mise à jour possible
``` ```
* affiche la version en ligne de FlashPlayer * affiche la version en ligne de FlashPlayer
@ -247,13 +234,6 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
## mise à jour ## mise à jour
* mise à jour du script si une nouvelle version est disponible en ligne
* mise à jour du plugin si une nouvelle version est disponible en ligne
* à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et
une installation **ne sont pas forcés**. il n'y aura téléchargement que si nouvelle version possible
* cette tâche est exécutée périodiquement par cron/anachron toutes les semaines et n'a pas vraiment
d'utilité à être lancée manuellement
`getFlashPlayer upgrade` `getFlashPlayer upgrade`
```text ```text
_ _____ _ _ ____ _ _ _____ _ _ ____ _
@ -263,40 +243,26 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
version FlashPlayer en ligne: 26.0.0.137 version FlashPlayer en ligne: 26.0.0.137
version FlashPlayer installée: 26.0.0.131, mise à jour possible version FlashPlayer installée: 26.0.0.131, mise à jour possible
installation FlashPlayer, version 26.0.0.137 installation FlashPlayer, version 26.0.0.137
/tmp/getFlashPlayer-6973/flash_pla 100%[======================================>] 8,10M 5,42MB/s in 1,5s /tmp/getFlashPlayer-6892/flash_pla 100%[======================================>] 8,10M 5,42MB/s in 1,5s
FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev FlashPlayer 26.0.0.137 installé ou mis à jour pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/ Pour tester: http://get.adobe.com/flashplayer/about/
``` ```
pas de mise à jour disponible: * mise à jour du script si une nouvelle version est disponible en ligne
```text * mise à jour du plugin si une nouvelle version est disponible en ligne
_ _____ _ _ ____ _ * à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ une installation **ne sont pas forcés**. il n'y aura téléchargement que si nouvelle version possible
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__| * cette tâche est exécutée périodiquement par cron/anachron toutes les semaines et n'a pas vraiment
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | d'utilité à être lancée manuellement
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/
pour Firefox sur Debian, version 2.0.1 - 12/07/2017
version FlashPlayer en ligne: 26.0.0.131
FlashPlayer à jour
FlashPlayer non mis à jour pour kyodev
```
## tâche planifiée ## tâche planifiée
@ -309,29 +275,18 @@ pas de mise à jour disponible:
* _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même lors d'arrêts du Pc * _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même lors d'arrêts du Pc
dans le syslog: (en root) `cat /var/log/syslog | grep Flash` dans le syslog: (en root) `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 26 15:00:01 NB11 kyodev[16614]: getFlashPlayer 1.0.0: upgrade
Jun 26 15:00:03 NB11 kyodev[16623]: FlashPlayer non mis à jour pour kyodev
```
## date d'installation du plugin ## date d'installation du plugin
pour vérifier la date où la dernière version du plugin a été installé ou mise à jour pour vérifier la date où la dernière version du plugin a été installée ou mise à jour
`date -r ~/.mozilla/plugins/libflashplayer.version` `date -r ~/.mozilla/plugins/libflashplayer.version`
```text
lundi 19 juin 2017, 15:00:02 (UTC+0200)
```
## supprimer le script sur le système ## supprimer le script sur le système
en **root**: `getFlashPlayer sysremove` en **root**:
`getFlashPlayer sysremove`
```text ```text
_ _____ _ _ ____ _ _ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
@ -340,9 +295,9 @@ en **root**: `getFlashPlayer sysremove`
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.3.1 - 17/07/2017 pour Firefox sur Debian, version 2.4.0 - 17/07/2017
getFlashPlayer supprimé du système. getFlashPlayer supprimé du système.
``` ```
* effacement du script dans le système (_/opt/bin_) * effacement du script dans le système (_/opt/bin_)

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
version=2.3.1 version=2.4.0
date="17/07/2017" date="17/07/2017"
projet="Kyodev" projet="Kyodev"
contact="https://framagit.org/kyodev/kyopages/issues" contact="https://framagit.org/kyodev/kyopages/issues"
@ -17,7 +17,7 @@ user_agent="Mozilla/5.0 (X11; Linux $(uname -m); rv:54.0) Gecko/20100101 Firefox
PATH='/bin:/usr/bin' ; IFS=' ' PATH='/bin:/usr/bin' ; IFS=' '
#### définition couleurs ----------------------------------------------- #### définition couleurs -----------------------------------------------
YELLOW=`printf "\033[0;33m"` # ? YELLOW=`printf "\033[0;33m"` # divers
GREEN=`printf "\033[0;32m"` # ok GREEN=`printf "\033[0;32m"` # ok
BLUE=`printf "\033[0;34m"` # info BLUE=`printf "\033[0;34m"` # info
COLOR=`printf "\033[0m"` # standard COLOR=`printf "\033[0m"` # standard
@ -45,33 +45,29 @@ echo -e "$YELLOW pour Firefox sur Debian, version $version - $date\n$COLOR
f__user(){ f__user(){
# user_ via variable en environnement # user_ via variable en environnement
test "$USER_INSTALL" && user_="$USER_INSTALL" test "$USER_INSTALL" && user_="$USER_INSTALL"
# sudo ou gnome: uid # sudo ou gnome: uid
test "$SUDO_UID" && user_id="$SUDO_UID" || user_id="$(echo "$XAUTHORITY" | grep -Eo '[0-9]+')" test "$SUDO_UID" && user_id="$SUDO_UID" || user_id="$(echo "$XAUTHORITY" | grep -Eo '[0-9]+')"
# si user_ vide, extraction classique user dans XAUTHORITY, donc priorité à $USER_INSTALL # si user_ vide, extraction classique user dans XAUTHORITY, donc priorité à $USER_INSTALL
test "$user_" || user_="$(echo "$XAUTHORITY" | cut -d "/" -f 3)" test "$user_" || user_="$(echo "$XAUTHORITY" | cut -d "/" -f 3)"
# si user_id, extraction via passwd # si user_id, extraction via passwd
test "$user_id" && user_="$(grep "$user_" /etc/passwd | cut -d ":" -f 1 )" test "$user_id" && user_="$(grep "$user_" /etc/passwd | cut -d ":" -f 1 )"
# derniers tests, home existant ou user_ défini # derniers tests, home existant ou user_ défini
if [ "$user_" ]; then if [ "$user_" ]; then
ls "/home/$user_" &>/dev/null || f__error "répertoire /home/$user_ INEXISTANT" ls "/home/$user_" &>/dev/null || f__error "répertoire /home/$user_ INEXISTANT"
else else
f__error "user indéterminé" ",lancer le script avec:\n\tUSER_INSTALL=user $0" f__error "user indéterminé" " lancer le script avec:\n\tUSER_INSTALL=user $0"
fi fi
} }
# test cnx réseau et résolution, return 0 si ok else 1 # test cnx réseau et résolution, return 0 si ok else 1
f__cnxTest(){ f__cnxTest(){
ping -c 1 free.fr &>/dev/null || return 1 wget -q --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "free.fr" || return 1
} }
# sortie sur erreur # sortie sur erreur, log $1 si upgrade
f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script, log $1 si upgrade f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script, log $1 si upgrade
echo -e "\n$RED Erreur critique: $1 $COLOR" echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR" echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.err "$script $version: <erreur> $1"; fi if [ "$opType" == "upgrade" ]; then logger --id -p user.err "$script $version: <erreur> $1"; fi
exit 1 exit 1
@ -79,19 +75,32 @@ f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script,
# affichage information, log $1 si upgrade # affichage information, log $1 si upgrade
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 "\n $BLUE $@ $COLOR\n" for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi
} }
#test dépendances (commandes disponibles), $1 liste commandes
f__requis(){
for i in "$@"; do
if [ ! "$(which $i)" ]; then
testDepends="ko"
f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
fi
done
[ -z "$testDepends" ] || f__error "Paquets manquants" " Contacter administrateur pour disposer de ces commendes"
}
# root? return 0 si root else 1 # root? return 0 si root else 1
f__root(){ f__root(){
if [ $EUID == 0 ]; then return 0; else return 1; fi if [ $EUID == 0 ]; then return 0; else return 1; fi
} }
# test wget, $1 url à tester # test wget, $1 url à tester, retourne url testée & entêtes
f__testWget(){ f__testWget(){
echo " $1" echo " $1"
wget -Sq --tries=1 --no-check-certificate --user-agent="$user_agent" -O /dev/null "$1" wget -Sq --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "$1"
f__error "Erreur wget" " réessayer et si persistance, contacter $projet $contact" " en indiquant les messages précédents."
} }
# test validité archive, $1 fichier (gzip), return 1 si invalide # test validité archive, $1 fichier (gzip), return 1 si invalide
@ -109,7 +118,6 @@ fscript_install(){
if [ "$(which dpkg)" ]; then if [ "$(which dpkg)" ]; then
# on vire 'flashplugin-nonfree' si installé et dpkg possible (debian) # on vire 'flashplugin-nonfree' si installé et dpkg possible (debian)
dpkg --get-selections | grep '^flashplugin-nonfree[[:space:]]' &>/dev/null && apt-get purge flashplugin-nonfree dpkg --get-selections | grep '^flashplugin-nonfree[[:space:]]' &>/dev/null && apt-get purge flashplugin-nonfree
# installation dans /opt
fi fi
mkdir -p /opt/bin/ mkdir -p /opt/bin/
cp -d "$(basename $0)" /opt/bin/"$script" cp -d "$(basename $0)" /opt/bin/"$script"
@ -117,32 +125,29 @@ fscript_install(){
ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null
# cron/anacron install # cron/anacron install
fscript_cronAnacron install fscript_cronAnacron install
else # installation/mise à jour manuelle else # mise à jour
chmod a+wx "$(basename $0)" chmod a+wx "$(basename $0)"
cp -d "$(basename $0)" /opt/bin/"$script" cp -d "$(basename $0)" /opt/bin/"$script"
fi fi
[ -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.\n$BLUE 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 ./)"
exit 0 exit 0
} }
# suppression du script dans le système # suppression du script dans le système
fscript_remove(){ fscript_remove(){
f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système" f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# 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
# cron/anacron install # cron/anacron install
fscript_cronAnacron remove fscript_cronAnacron remove
f__info "$GREEN$script supprimé du système."
f__info "$GREEN$script supprimé du système.\n"
} }
# version script en ligne, assigne $versionScript, $uptd_script=""|ko, # version script en ligne, assigne $versionScript, $uptd_script=""|ko,
fscript_version(){ fscript_version(){
versionScript="$(wget -q -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)" versionScript="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
if [ "$version" != "$versionScript" ]; then if [ "$version" != "$versionScript" ]; then
f__info "version script en ligne: $versionScript, mise à jour possible" f__info "version script en ligne: $versionScript, mise à jour possible"
uptd_script="ko" uptd_script="ko"
@ -154,11 +159,13 @@ fscript_dl(){
if [ "$uptd_script" != "ko" ]; then return 0; fi if [ "$uptd_script" != "ko" ]; then return 0; fi
dirTemp="/tmp/$script-$RANDOM/" dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
wget -q -O "$dirTemp$script" "$urlScript" && chmod +x "$script" wget -q --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript" && chmod +x "$script"
if [ "$?" != "0" ]; then f__testWget "$urlScript"; fi if [ "$?" != "0" ]; then f__testWget "$urlScript"; fi
cp -d "$dirTemp$script" /opt/bin/"$script" cp -d "$dirTemp$script" /opt/bin/"$script"
rm "$dirTemp$script" rm "$dirTemp$script"
f__info "$script mis à jour en version $versionScript" echo ""; f__info "$script mis à jour en version $versionScript"
$0 upgrade
exit
} }
#inscription dans tache upgrade en cron hebdomadaire, une partie requiert root #inscription dans tache upgrade en cron hebdomadaire, une partie requiert root
@ -189,17 +196,17 @@ esac
fflash_version(){ fflash_version(){
urlOnline="https://get.adobe.com/flashplayer/" urlOnline="https://get.adobe.com/flashplayer/"
if ! f__cnxTest; then f__error "pas de connexion internet"; fi if ! f__cnxTest; then f__error "pas de connexion internet"; fi
verFlash="$(wget --tries=2 --no-check-certificate --timeout=15 --user-agent="$user_agent" -nv -O - "$urlOnline" | \ verFlash="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \
grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]')" || verFlash="na" sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na"
if [ "$?" != "0" ]; then f__testWget "$urlOnline"; fi if [ "$?" != "0" ]; then f__testWget "$urlOnline"; fi
verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)" || verInstall="" verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)"
uptd_plug="" uptd_plug=""
if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible"; if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible";
else f__info "version FlashPlayer en ligne: $verFlash"; fi else f__info "version FlashPlayer en ligne: $verFlash"; fi
if [ "$verInstall" == "" ]; then f__info "FlashPlayer non installé"; return 0; fi if [ "$verInstall" == "" ]; then f__info "FlashPlayer non installé"; return 0; fi
if [ "$verInstall" == "$verFlash" ]; then f__info "FlashPlayer à jour"; if [ "$verInstall" == "$verFlash" ]; then f__info "FlashPlayer à jour";
else else
f__info "version FlashPlayer installée: $verInstall" ", mise à jour possible" f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
uptd_plug="ko" uptd_plug="ko"
fi fi
} }
@ -211,10 +218,9 @@ cat << 'EOF'
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,
ni le distribuer librement. ni le distribuer librement.
Il souffre de nombreuses vulnérabilités chroniques, depuis des années Il souffre de nombreuses vulnérabilités chroniques, depuis des années
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état sans que l'éditeur fasse beaucoup d'efforts pour corriger cela...
de fait... Il sera bloqué à plus ou moins court terme pas les navigateurs majeurs,
Il sera donc bloqué à plus ou moins court terme pas les navigateurs c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
EOF EOF
} }
@ -239,33 +245,28 @@ EOF
printf $COLOR; cat << 'EOF' printf $COLOR; cat << 'EOF'
----------------------------------------------------------------------- -----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour Ce script doit être exécuté avec les droits root uniquement pour
la première installation et la suppression du script dans le système. l'installation et la suppression du script dans le système.
Il désinstallera le paquet flashplugin-nonfree si présent. Il désinstallera le paquet flashplugin-nonfree si présent.
Seul le plugin sera installé, en tant que plugin Mozilla Firefox. Seul le plugin sera installé, en tant que plugin Mozilla Firefox.
Ce script devrait fonctionner sur Ubuntu.
----------------------------------------------------------------------- -----------------------------------------------------------------------
EOF EOF
printf $COLOR printf $COLOR
} }
# calcul url téléchargement plugin, $1=v1 pour version 1 url, assigne $recup_url, # calcul url téléchargement plugin, assigne $recup_url,
fflash_detect_url(){ fflash_detect_url_v1(){
if [ "$1" == "v1" ]; then
recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/" recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/"
if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then recup2='i386'; if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then recup2='i386';
elif [ "$(uname -m)" == "x86_64" ] || [ "$(uname -m)" == "amd64" ]; then recup2='x86_64'; elif [ "$(uname -m)" == "x86_64" ] || [ "$(uname -m)" == "amd64" ]; then recup2='x86_64';
else f__error "architecture non reconnue" ; fi else f__error "architecture non reconnue" ; fi
recup_url="$recup1$verFlash/flash_player_npapi_linux.$recup2.tar.gz" recup_url="$recup1$verFlash/flash_player_npapi_linux.$recup2.tar.gz"
# https://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.137/flash_player_npapi_linux.i386.tar.gz }
else fflash_detect_url_v2(){
#v2 07/2017 nouveau, mais pas exploitable avec wget ou curl, pour l'avenir? #v2 07/2017 nouveau, mais pas exploitable avec wget ou curl, pour l'avenir?
recup="$(wget --tries=2 --timeout=15 --user-agent="$user_agent" -qO - "$urlOnline" | grep -o '#buttonDownload.*(\.tar\.gz).*$')" recup="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | grep -o '#buttonDownload.*(\.tar\.gz).*$')"
recup1="$(echo $recup | sed 's/.*\(download.*Linux_\).*/\1/')" recup1="$(echo $recup | sed 's/.*\(download.*Linux_\).*/\1/')"
recup2="$(echo $test | sed 's/.*\(-bit.*standalone=1\).*/\1/')" recup2="$(echo $test | sed 's/.*\(-bit.*standalone=1\).*/\1/')"
recup_url="$urlOnline$recup1$(getconf LONG_BIT)$recup2" recup_url="$urlOnline$recup1$(getconf LONG_BIT)$recup2"
#https://get.adobe.com/fr/flashplayer/download/?installer=FP_26.0_for_Linux_32-bit_(.tar.gz)_-_NPAPI&sType=6627&standalone=1
fi
} }
# install plugin dans config user mozilla, $1 manuel (install manuelle), # $2 script à installer si install manuelle # install plugin dans config user mozilla, $1 manuel (install manuelle), # $2 script à installer si install manuelle
@ -278,21 +279,17 @@ fflash_install(){
else else
file="flash_player_npapi_linux.$(getconf LONG_BIT).tar.gz" file="flash_player_npapi_linux.$(getconf LONG_BIT).tar.gz"
# calcul $file, affichage version pendant l'install # calcul $file, affichage version pendant l'install
if [ $verFlash == "na" ] || [ $verFlash == "" ]; then fflash_version; fi if [ $verFlash == "na" ]; then fflash_version; fi
f__info "installation FlashPlayer, version $verFlash" f__info "installation FlashPlayer, version $verFlash"
# dossier temporaire de travail, création # dossier temporaire de travail, création
dirTemp="/tmp/$script-$RANDOM/" dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
# chargement/détection archive plugin flashplayer # détection/chargement/test archive plugin flashplayer
fflash_detect_url "v1" fflash_detect_url_v1
wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \ wget -q -c --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" --referer="$urlOnline" -O "$dirTemp$file" "$recup_url"
--tries=1 -O "$dirTemp$file" "$recup_url" if [ "$?" != "0" ]; then f__testWget "$recup_url"; fi
if [ "$?" != "0" ]; then
f__testWget "$recup_url"
f__error "Erreur wget" "\n réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes."
fi
f__testArchive "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide" f__testArchive "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
fi fi
@ -313,7 +310,7 @@ fflash_install(){
# droits user si jamais installation par root # droits user si jamais installation par root
chown -R "$user_": "/home/$user_/.mozilla/plugins" chown -R "$user_": "/home/$user_/.mozilla/plugins"
f__info "FlashPlayer $verFlash installé ou mis à jour pour $user_" "\n\tPour tester: http://get.adobe.com/flashplayer/about/" echo ""; f__info "FlashPlayer $verFlash installé ou mis à jour pour $user_" "\tPour tester: http://get.adobe.com/flashplayer/about/"
} }
# test et mise à jour plugin si plugin outdated # test et mise à jour plugin si plugin outdated
@ -329,7 +326,7 @@ fflash_remove(){
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.maj" rm -f "/home/$user_/.mozilla/plugins/libflashplayer.maj"
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.so" rm -f "/home/$user_/.mozilla/plugins/libflashplayer.so"
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.version" rm -f "/home/$user_/.mozilla/plugins/libflashplayer.version"
f__info "FlashPlayer $verFlashRemove désinstallé pour $user_\n" f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_"
} }
# installation du plugin chargé manuellement, $1 # installation du plugin chargé manuellement, $1
@ -345,13 +342,14 @@ fflash_manuelInstall(){
#initialisation #initialisation
f__user f__user
verFlash="na" verFlash="na"
f__requis "wget" "logger" "file"
# installation du script si pas dans le système # installation du script si pas dans le système
dirname "$0" | grep 'bin' &>/dev/null || fscript_install dirname "$0" | grep 'bin' &>/dev/null || fscript_install
case "$1" in case "$1" in
"install" ) "install" )
fflash_install "install";; # installation plugin fflash_install;; # installation plugin
"remove" ) "remove" )
fflash_remove ;; # désinstallation plugin fflash_remove ;; # désinstallation plugin
"version" ) "version" )
@ -368,7 +366,8 @@ case "$1" in
"manuel" ) "manuel" )
fflash_manuelInstall "$2" ;; # install manuelle d'un chargement fflash_manuelInstall "$2" ;; # install manuelle d'un chargement
* ) * )
fflash_help; fflash_avert ;; # affichage help par défaut fflash_help
fflash_avert ;; # affichage help par défaut
esac esac
exit 0 exit 0

View File

@ -1,10 +1,13 @@
# changelog getFlashPlayer # changelog getFlashPlayer
## todo ## 2.4.0 17/07/2017
* dépendances: wget, ...? * mieux, multi linux: test dépendances
* réviser wget et timeout * mieux, multi linux: test cnx
* révision extraction version flash
* révision procédure maj script
* révision wgets
## 2.3.1 17/07/2017 ## 2.3.1 17/07/2017
@ -15,7 +18,7 @@
* fix bug: erreur chargement retour à url v1 fonctionnant * fix bug: erreur chargement retour à url v1 fonctionnant
* fix bug remove plugin: enlève tache anacron & mauvaise version affichée * fix bug remove plugin: enlève tache anacron & mauvaise version affichée
* mieux: multiplateforme, détection dpkg avant purge flashplugin-nonfree éventuel * mieux, multi linux: détection dpkg avant purge flashplugin-nonfree éventuel
* mieux: gestion syslog * mieux: gestion syslog
## 2.2.1 14/07/2017 ## 2.2.1 14/07/2017