This commit is contained in:
kyodev 2017-07-25 00:27:27 +02:00
parent 4e6eb67bb4
commit e5db1d420d
3 changed files with 88 additions and 85 deletions

View File

@ -1,9 +1,8 @@
# getFlashPlayer # getFlashPlayer
> c'est un script bash qui se charge de charger et d'installer le plugin FlashPlayer pour Firefox, > c'est un script bash qui télécharge et installe le plugin FlashPlayer pour Firefox, pour l'utilisateur en cours
pour l'utilisateur en cours
> le script se met à jour et gère les mises à jour de FlashPlayer par une tâches planifiée hebdomadaire > le script se met à jour et gère les mises à jour de FlashPlayer par une tâche planifiée hebdomadaire
> le script installe le plugin FlashPlayer pour l'user en cours > le script installe le plugin FlashPlayer pour l'user en cours
@ -25,16 +24,15 @@ chmod +x getFlashPlayer && ./getFlashPlayer
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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 * le script est maintenant dans le système et tout utilisateur peut s'en servir.
(_/usr/local/bin/getFlashPlayer_) et tout utilisateur peut s'en servir. * **le plugin n'est pas encore installé**
**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é**.
@ -70,7 +68,7 @@ lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlas
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 2.6.4 - 19/07/2017 pour Firefox, version 2.6.5 - 24/07/2017
----------------------------------------------------------------------- -----------------------------------------------------------------------
./getFlashPlayer : installation du script dans le système, en ROOT ./getFlashPlayer : installation du script dans le système, en ROOT
@ -113,8 +111,7 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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,
@ -135,6 +132,7 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
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/
``` ```
* FlashPlayer est installé, en étant directement chargé du site Adobe * FlashPlayer est installé, en étant directement chargé du site Adobe
@ -162,8 +160,7 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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.i386.tar.gz
@ -180,6 +177,7 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
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/
``` ```
@ -193,14 +191,14 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5b1 - 24/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 FlashPlayer à jour
version script en ligne: 2.3.1, mise à jour possible version script en ligne: 2.6.5, mise à jour possible
``` ```
* affiche la version en ligne de FlashPlayer * affiche la version en ligne de FlashPlayer
@ -218,10 +216,10 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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
``` ```
* le plugin est effacé du profil Mozilla de l'utilisateur * le plugin est effacé du profil Mozilla de l'utilisateur
@ -239,8 +237,7 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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
@ -252,16 +249,17 @@ voir: https://developer.mozilla.org/fr/docs/Plugins/Roadmap
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/
``` ```
* test toutes les **semaines** * test toutes les **semaines**
* mise à jour du **script** si une nouvelle version est disponible en ligne * mise à jour du **script** si une nouvelle version est disponible en ligne
* mise à jour du **plugin** si une nouvelle version est disponible en ligne * mise à jour du **plugin** si une nouvelle version est disponible en ligne **et** le plugin installé
* le script se mettra à jour même si le plugin n'est pas installé
* pas de nouvelle version: pas de téléchargement * pas de nouvelle version: pas de téléchargement
* à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et * à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et
une installation **ne sont pas forcés**. une installation **ne sont pas forcés**.
* cette tâche est exécutée périodiquement par cron/anachron et n'a pas vraiment * cette tâche est exécutée périodiquement par cron/anachron et n'a pas vraiment vocation à être lancée manuellement
d'utilité à être lancée manuellement
* _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
@ -299,10 +297,10 @@ en **root**:
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox, version 2.6.5 - 24/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,8 +1,8 @@
#!/bin/bash #!/bin/bash
version=2.6.4 version=2.6.5
date="19/07/2017" date="24/07/2017"
projet="Kyodev" projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFlashPlayer" script="getFlashPlayer"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer" urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer"
@ -10,9 +10,8 @@ urlNotice="https://kyodev.frama.io/kyopages/scripts/getFlashPlayer/"
user_agent="Mozilla/5.0 (X11; Linux $(uname -m); rv:54.0) Gecko/20100101 Firefox/54.0" user_agent="Mozilla/5.0 (X11; Linux $(uname -m); rv:54.0) Gecko/20100101 Firefox/54.0"
##### license LPRAB/WTFPL ##### license LPRAB/WTFPL
# auteurs: kyodev # auteur: simpledebian
# contibuteur: coyotus, naguam # contributeurs: kyodev, coyotus, naguam
# idée: naguam
##### #####
PATH='/bin:/usr/bin' ; IFS=' ' PATH='/bin:/usr/bin' ; IFS=' '
@ -35,7 +34,7 @@ cat << 'EOF'
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
EOF EOF
echo -e "$YELLOW pour Firefox sur Debian, version $version - $date$COLOR\n" echo -e "$YELLOW pour Firefox, version $version - $date$COLOR\n"
# user ayant initié la session graphique, assigne $user_ # user ayant initié la session graphique, assigne $user_
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec: # sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
@ -62,8 +61,8 @@ f__cnxTest(){
wget -q --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "free.fr" || return 1 wget -q --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "free.fr" || return 1
} }
# sortie sur erreur, log $1 si upgrade # affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script, log $1 si upgrade f__error() {
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"
@ -71,8 +70,8 @@ f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script,
exit 1 exit 1
} }
# affichage information, log $1 si upgrade # affichage des paramètres en bleu, ligne vide à la fin, syslog $1 si upgrade
f__info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR" echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi
@ -80,7 +79,7 @@ f__info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne
#test dépendances (commandes disponibles), $1 liste commandes #test dépendances (commandes disponibles), $1 liste commandes
f__requis(){ f__requis(){
for i in "$@"; do for i in $@; do
if [ ! "$(which $i)" ]; then if [ ! "$(which $i)" ]; then
testDepends="ko" testDepends="ko"
f__info "$RED vous devez avoir la commande $i pour exploiter ce script" f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
@ -94,22 +93,22 @@ 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, retourne url testée & entêtes # test wget, $1 url à tester, sortie sur erreur
f__testWget(){ f__wget_test(){
echo " $1" echo " $1"
wget -Sq --tries=1 --timeout=15 --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." 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
f__testArchive(){ f__archive_test(){
file -b "$1" | grep 'gzip compressed data' &>/dev/null && archive_detect="gzip" || return 1 file -b "$1" | grep 'gzip compressed data' &>/dev/null || return 1
} }
# install du script dans le système # install du script dans le système
fscript_install(){ fscript_install(){
# si script inexistant ou inaccessible en écriture, ou si cronAnacron non installé: root requis # si script inexistant ou inaccessible en écriture, ou si cronAnacron non installé: root requis
if [ ! -w "/opt/bin/$script" ] || [ ! -e "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" ]; then if [ ! -w "/opt/bin/$script" ] || [ ! -e "$dirInstall/libflashplayer.anacrontab" ]; then
f__root || f__error "vous devez être ROOT pour installer ce script dans le système" f__root || f__error "vous devez être ROOT pour installer ce script dans le système"
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)
@ -117,7 +116,7 @@ fscript_install(){
fi fi
# install /opt # install /opt
mkdir -p /opt/bin/ mkdir -p /opt/bin/
ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null ln -s /opt/bin/"$script" /usr/bin/"$script" &>/dev/null
cp -d "$(basename $0)" "/opt/bin/$script" cp -d "$(basename $0)" "/opt/bin/$script"
chmod a+rwx "/opt/bin/$script" chmod a+rwx "/opt/bin/$script"
chown "$user_": "/opt/bin/$script" chown "$user_": "/opt/bin/$script"
@ -138,28 +137,28 @@ 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/bin/"$script" &>/dev/null || unlink /usr/local/bin/"$script" &>/dev/null
# cron/anacron remove # cron/anacron remove
fscript_cronAnacron remove fscript_cronAnacron remove
f__info "$GREEN$script supprimé du système." f__info "$GREEN$script supprimé du système."
} }
# version script en ligne, assigne $versionScript, $uptd_script=""|ko, # version script en ligne, assigne $versionScript, $script_aJour=ok|ko,
fscript_version(){ fscript_version(){
versionScript="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -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" script_aJour="ko"
else uptd_script=""; fi else script_aJour="ok"; fi
} }
# mise à jour script si dispo # mise à jour script si dispo
fscript_dl(){ fscript_dl(){
if [ "$uptd_script" != "ko" ]; then return 0; fi if [ "$script_aJour" == "ok" ]; then return 0; fi
dirTemp="/tmp/$script-$RANDOM/" dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
wget -q --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript" wget -q --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript"
if [ "$?" != "0" ]; then f__testWget "$urlScript"; fi if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
chmod a+rwx "$dirTemp$script" chmod a+rwx "$dirTemp$script"
chown "$user_": "$dirTemp$script" chown "$user_": "$dirTemp$script"
cp -d "$dirTemp$script" /opt/bin/"$script" cp -d "$dirTemp$script" /opt/bin/"$script"
@ -169,52 +168,52 @@ fscript_dl(){
exit 0 exit 0
} }
#inscription dans tache upgrade en cron hebdomadaire, une partie requiert root # inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){ fscript_cronAnacron(){
case "$1" in case "$1" in
"install" ) "install" )
# création répertoire plugin/ # création répertoire plugin/
mkdir -p "/home/$user_/.mozilla/plugins" mkdir -p "$dirInstall"
chown "$user_": "/home/$user_/.mozilla/plugins" chown "$user_": "$dirInstall"
# table anacron # table anacron
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$dirInstall/libflashplayer.anacrontab"
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" ## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$dirInstall/libflashplayer.anacrontab"
chown "$user_": "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" chown "$user_": "$dirInstall/libflashplayer.anacrontab"
# création spool anacron utilisateur # création spool anacron utilisateur
mkdir -p "/home/$user_/.config/anacron/spool" mkdir -p "/home/$user_/.config/anacron/spool"
chown "$user_": "/home/$user_/.config/anacron/spool" chown "$user_": "/home/$user_/.config/anacron/spool"
# cron tab pour activation horaire anacron # cron tab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t /home/$user_/.mozilla/plugins/libflashplayer.anacrontab -S /home/$user_/.config/anacron/spool" >> /etc/crontab echo "@hourly $user_ /usr/sbin/anacron -t $dirInstall/libflashplayer.anacrontab -S /home/$user_/.config/anacron/spool" >> /etc/crontab
;; ;;
"remove" ) "remove" )
[ -e "/home/$user_/.config/anacron/spool/getFP" ] && rm "/home/$user_/.config/anacron/spool/getFP" [ -e "/home/$user_/.config/anacron/spool/getFP" ] && rm "/home/$user_/.config/anacron/spool/getFP"
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
rm "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" rm "$dirInstall/libflashplayer.anacrontab"
;; ;;
esac esac
} }
# version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptd_plug=""|ko, $urlOnline, # version Flash en ligne & installée, $verFlash=x.y|na, $verInstall, $plugin_aJour=ok|ko, $urlOnline,
fflash_version(){ fflash_version(){
urlOnline="https://get.adobe.com/fr/flashplayer/" urlOnline="https://get.adobe.com/fr/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 -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \ verFlash="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \
sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na" sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na"
if [ "$?" != "0" ]; then f__testWget "$urlOnline"; fi if [ "$?" != "0" ]; then f__wget_test "$urlOnline"; fi
verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)" verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)"
uptd_plug="" plugin_aJour="ok"
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" plugin_aJour="ko"
fi fi
} }
# pas beau ce soft :( # pas beau ce soft :(
fflash_avert(){ fflash_avertissement(){
cat << 'EOF' cat << 'EOF'
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,
@ -267,14 +266,14 @@ fflash_recup_url_v1(){
# installation du plugin chargé manuellement, $1 # installation du plugin chargé manuellement, $1
fflash_install_manuel(){ fflash_install_manuel(){
if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi
f__testArchive "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide" f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide"
f__info "installation manuelle $1" f__info "installation manuelle $1"
fflash_install "manuel" "$1" fflash_install "manuel" "$1"
} }
# 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
fflash_install(){ fflash_install(){
if [ "$opType" != "upgrade" ]; then fflash_avert; fi if [ "$opType" != "upgrade" ]; then fflash_avertissement; fi
if [ "$1" == "manuel" ]; then if [ "$1" == "manuel" ]; then
file="$(basename $2)" file="$(basename $2)"
dirTemp="$(dirname $2)/$script-$RANDOM/" dirTemp="$(dirname $2)/$script-$RANDOM/"
@ -292,52 +291,53 @@ fflash_install(){
# détection/chargement/test archive plugin flashplayer # détection/chargement/test archive plugin flashplayer
fflash_recup_url_v1 fflash_recup_url_v1
wget -q -c --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" --referer="$urlOnline" -O "$dirTemp$file" "$recup_url" wget -q -c --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" --referer="$urlOnline" -O "$dirTemp$file" "$recup_url"
if [ "$?" != "0" ]; then f__testWget "$recup_url"; fi if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi
f__testArchive "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide" f__archive_test "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
fi fi
# décompression archive téléchargée dans dossier de travail # décompression archive téléchargée dans dossier de travail
if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi
if [ "$1" == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi if [ "$1" == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi
# copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire # copie de la bibliothèque flash dans plugins/ user mozilla, effacement répertoire temporaire
mkdir -p "/home/$user_/.mozilla/plugins/" mkdir -p "$dirInstall"
cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/" cp -f "$dirTemp"libflashplayer.so "$dirInstall/"
rm -Rf "$dirTemp" rm -Rf "$dirTemp"
# marqueur version et maj dans plugins/ user mozilla # marqueur version et maj dans plugins/ user mozilla
echo "$verFlash" > "/home/$user_/.mozilla/plugins/libflashplayer.version" echo "$verFlash" > "$dirInstall/libflashplayer.version"
touch "/home/$user_/.mozilla/plugins/libflashplayer.maj" touch "$dirInstall/libflashplayer.maj"
# droits user si jamais installation par root # droits user si jamais installation par root
chown -R "$user_": "/home/$user_/.mozilla/plugins" chown -R "$user_": "$dirInstall"
echo ""; f__info "FlashPlayer $verFlash installé ou mis à jour pour $user_" "\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
fflash_upgrade(){ fflash_upgrade(){
if [ "$uptd_plug" == "ko" ]; then fflash_install; fi if [ "$plugin_aJour" == "ko" ]; then fflash_install; fi
} }
# suppression du plugin # suppression du plugin
fflash_remove(){ fflash_remove(){
# on efface le plugin, mais la tache anacron le sera par script remove # on efface le plugin, mais la tache anacron le sera par script remove
[ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer déjà désinstallé pour $user_\n" [ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer déjà désinstallé pour $user_\n"
verFlashRemove="$(strings /home/$user_/.mozilla/plugins/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')" verFlashRemove="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.maj" rm -f "$dirInstall/libflashplayer.maj"
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.so" rm -f "$dirInstall/libflashplayer.so"
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.version" rm -f "$dirInstall/libflashplayer.version"
f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_" f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_"
} }
#initialisation #initialisation
f__user f__user
verFlash="na" verFlash="na"
f__requis "wget" "logger" "file" "tar" f__requis "wget logger file tar"
dirInstall="/home/$user_/.mozilla/plugins"
[ -e "$dirInstall/libflashplayer.so" ] && flash_installed="ok" || flash_installed="ko"
# installation du script si pas dans le système # installation du script si appel pas fait depuis le système
dirname "$0" | grep 'bin' &>/dev/null || fscript_install dirname "$0" | grep 'bin' &>/dev/null || fscript_install
# détection droits inappropriés sur le script # détection droits inappropriés sur le script
[ "$1" != "sysremove" ] && [ -e "/opt/bin/$script" ] && ls -l "/opt/bin/$script" | grep 'root' &>/dev/null && f__error "bug sécu 01" \ [ "$1" != "sysremove" ] && [ -e "/opt/bin/$script" ] && ls -l "/opt/bin/$script" | grep 'root' &>/dev/null && f__error "bug sécu 01" \
@ -357,13 +357,14 @@ case "$1" in
opType="upgrade" opType="upgrade"
fscript_version fscript_version
fscript_dl fscript_dl
[ "$flash_installed" == "ko" ] && exit 0
fflash_version fflash_version
fflash_upgrade ;; # upgrade plugin et script si MAJs possibles fflash_upgrade ;; # upgrade script et plugin si installé
"manuel" ) "manuel" )
fflash_install_manuel "$2" ;; # install manuelle d'un chargement fflash_install_manuel "$2" ;; # install manuelle d'un chargement
* ) * )
fflash_help fflash_help
fflash_avert ;; # affichage help par défaut fflash_avertissement ;; # affichage help par défaut
esac esac
exit 0 exit 0

View File

@ -1,11 +1,15 @@
# changelog getFlashPlayer # changelog getFlashPlayer
## 2.6.4 23/07/2017 ## tofo
* cosmétique * script en stand-by
## 2.6.3 19/07/2017
## 2.6.3-2.6.5 24/07/2017
* séparation mise à jour script et plugin, le script peut être en stand-by, se mettre à jour, sans
plugin installé
* replacement lien script dans /usr/bin/
* cosmétique * cosmétique
## 2.6.2 18/07/2017 ## 2.6.2 18/07/2017