From 19744e36b87aa62cdef98e3bdf53ce4c5f9210fd Mon Sep 17 00:00:00 2001 From: kyodev Date: Thu, 8 Jun 2017 14:09:19 +0200 Subject: [PATCH] 0.8.0 --- docs/scripts/getFlashPlayer.md | 112 +++++------- scripts/getFlashPlayer | 304 +++++++++++++++------------------ 2 files changed, 178 insertions(+), 238 deletions(-) diff --git a/docs/scripts/getFlashPlayer.md b/docs/scripts/getFlashPlayer.md index 7bdecae..0646ddb 100644 --- a/docs/scripts/getFlashPlayer.md +++ b/docs/scripts/getFlashPlayer.md @@ -1,11 +1,6 @@ # getFlashPlayer -**version 0.7.x** - -## voir les sources - -sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer) - +**version 0.8.x** ## charger le script @@ -14,18 +9,22 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer chmod +x getFlasPlayer ``` -## installation rapide +## installation +en **root** ```shell su - # le script est dans le système -./getFlashPlayer sysinstall - # FlashPlayer est installé -getFlashPlayer install +./getFlashPlayer +exit ``` + * le script est maintenant dans le système et tout utilisateur peut s'en servir. + * si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois ( en juin 2017), + il sera **désinstallé**. + si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant. -## lancer le script sans arguments -`./getFlashPlayer` +## help, script sans arguments + +`getFlashPlayer` ``` _ _____ _ _ ____ _ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ @@ -33,28 +32,25 @@ getFlashPlayer install | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ - pour Firefox sur Debian, version 0.7.0rc + + pour Firefox sur Debian, version 0.8.0 - 08/06/2017 ----------------------------------------------------------------------- - getFlashPlayer install : téléchargement et installation de FlashPlayer + ./getFlashPlayer : installation du script dans le système, en ROOT + + getFlashPlayer install : téléchargement & installation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer - getFlashPlayer version : récupération version en ligne de FlashPlayer - getFlashPlayer test : installation version de test alternative + getFlashPlayer version : version en ligne de FlashPlayer + getFlashPlayer test : installation version de test de FlashPlayer - getFlashPlayer sysinstall : installation du script dans le système - getFlashPlayer sysremove : désinstallation du script dans le système - - ce script agit sur TOUS les utilisateurs déclarés du système + getFlashPlayer sysremove : désinstall du script du système, en ROOT ----------------------------------------------------------------------- - - Ce script doit être exécuté avec les droits administrateur root - uniquement pour les installations et la suppresion du script dans - le système. + Ce script doit être exécuté avec les droits root uniquement pour + l'installation et la suppresion du script dans le système. 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 programmme propriétaire dont on ne peut pas connaître le code source, ni l'utiliser sans conditions, ni le distribuer librement. @@ -66,67 +62,45 @@ getFlashPlayer install ``` -## lancer l'installation de la version _release_ +## installation plugin version _release_ -en **root**: `./getFlashPlayer install` +`getFlashPlayer install` - * l'installation sera faite pour tous les utilisateurs configurés dans le système. - * FlashPlayer est chargé du site Adobe. Après installation, les fichiers inutiles sont effacés. - * si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois (juin 2017), il sera désinstallé. - si ce paquet devait être ré-installé, il semble préférable de de désinstaller _getFlashPlayer_ auparavant. - * si un nouvel utilisateur est ajouté ultérieurement, l'installation devra être relancée + * FlashPlayer est installé, en étant directement chargé du site Adobe. + * l'installation est faite pour l'utilisateur courant. + * lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. * seule la bibliothèque est installée comme plugin Firefox (uniquement). FlashPlayer pourra être configuré au clic droit dans le navigateur. le système n'est pas encombré. + * après installation, les fichiers inutiles sont effacés. -## désinstallation +## désinstallation plugin -`./getFlashPlayer remove` +`getFlashPlayer remove` - * les plugins seront effacés des profils Mozilla de tous les utilisateurs + * le plugin sera effacé du profil Mozilla de l'utilisateur courant. + * lancer le script pour chaque utilisateur, en **utilisateur**, pas en root. * si le répertoire _plugins_ est vide, il sera effacé -## voir la version en ligne +## version en ligne -`./getFlashPlayer version`: affiche la dernière version en ligne de FlashPlayer. +`getFlashPlayer version`: affiche la version en ligne de FlashPlayer. -## lancer l'installation de la version _test_ +## installation plugin version _test_ -en **root**: `./getFlashPlayer test` +`getFlashPlayer test` * utilise une version de test sur une adresse alternative. la pérennité de cette url ou la fiabilité de cette version n'est pas connue. -## installer le script sur le systeme - -en **root**: `./getFlashPlayer sysinstall` -le script téléchargé est **effacé** -le script est copié dans `/opt/bin/` -un lien est créé dans `/usr/local/bin/` - -le script doit alors être appelé sous ces formes: - - * getFlashPlayer install - * getFlashPlayer remove - * getFlashPlayer version - * getFlashPlayer test - * getFlashPlayer sysinstall - * getFlashPlayer sysremove - -non installé dans le système, le script doit donc être appelé dans le répertoire de téléchargement, qui ne -fait pas partie du PATH, avec le préfixe `./` soit: - - * **./**getFlashPlayer install - * **./**getFlashPlayer remove - * **./**getFlashPlayer version - * **./**getFlashPlayer test - * **./**getFlashPlayer sysinstall - * **./**getFlashPlayer sysremove - - ## supprimer le script sur le systeme -en **root**: `getFlashPlayer sysinstall` +en **root**: `getFlashPlayer sysremove` + + +## sources + +sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer) diff --git a/scripts/getFlashPlayer b/scripts/getFlashPlayer index 49c2eb0..0b5e820 100755 --- a/scripts/getFlashPlayer +++ b/scripts/getFlashPlayer @@ -1,13 +1,14 @@ #!/bin/bash -version="0.7.1rc" +version="0.8.0" projet="A définir" contact="A venir" +date="08/06/2017" ##### licence LPRAB/WTFPL -# auteur kyodev -# contibuteurs naguam / coyotus / arpinux -# 06/2017 +# auteurs: kyodev +# contibuteurs: coyotus +# idée: naguam ##### #### définition couleurs ----------------------------------------------- @@ -17,6 +18,7 @@ YELLOW=`printf "\033[0;33m"` # ? COLOR=`printf "\033[0m"` # standard RED=`printf "\033[0;31m"` # alerte + #### entete ============================================================ clear echo "$BLUE" @@ -27,14 +29,15 @@ cat << 'EOF' | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| |___/ |___/ + EOF -echo -e "$YELLOW pour Firefox sur Debian, \t version $version\n$COLOR" +echo -e "$YELLOW pour Firefox sur Debian, \t version $version - $date\n$COLOR" #### fonctions diverses ================================================ # sortie sur erreur -f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu +f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu, sortie du script echo -e "\n$RED Erreur critique: $1 $COLOR" for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done echo "$COLOR" @@ -48,40 +51,35 @@ f_info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne #debian? return 0 else 1 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 f_root(){ - if [ $EUID -eq 0 ]; then - return 0 - else - return 1 - fi + if [ $EUID -eq 0 ]; then return 0; else return 1; fi } - # liste des users déclarés dans le système, assigne $listeUsers -f_allUsers(){ - # valeurs séparées par espace - listeUsers=$(cat /etc/passwd | sed -En 's/^(.*):x:[0-9]{4}.*$/\1/p' | grep -v 'nobody' | tr '\n' ' ') + # script en /bin? return 0 si bin, 1 si local +f_scriptBin(){ + # echo egrep: "-$(echo $0 | grep -Eo '\.\/')-" + if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi } - # version Flash en ligne, assign $verFlash, assigne $user_agent , $urlOnline , $verFlash + +#### fonctions script ================================================== + + # version Flash en ligne, $verFlash, $user_agent, $urlOnline, $verFlash f_versionFlash(){ user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/20100101 Firefox/52.0" urlOnline="https://get.adobe.com/flashplayer/" verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \ grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') + f_info "Version FlashPlayer en ligne: $verFlash." } - # pas bô ce soft :( ================================================ + # pas bô ce soft :( f_avertissement(){ cat << 'EOF' - 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, ni le distribuer librement. @@ -94,178 +92,146 @@ cat << 'EOF' EOF } -#### traitements arguments ============================================= -if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" -elif [ "$1" == "install" ]; then cmd="install" -elif [ "$1" == "remove" ]; then cmd="remove" -elif [ "$1" == "version" ]; then cmd="version" -elif [ "$1" == "test" ]; then cmd="installTest" -elif [ "$1" == "sysinstall" ]; then cmd="sysinstall" -elif [ "$1" == "sysremove" ]; then cmd="sysremove" -else cmd="help" -fi - -if [ "$cmd" == "help" ]; then - # HELP si pas d'arguments ou mauvais argument -echo "$BLUE" + # affichage help +f_help(){ + printf $BLUE cat << 'EOF' ----------------------------------------------------------------------- - getFlashPlayer install : téléchargement et installation de FlashPlayer + ./getFlashPlayer : installation du script dans le système, en ROOT + + getFlashPlayer install : téléchargement & installation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer - getFlashPlayer version : récupération version en ligne de FlashPlayer - getFlashPlayer test : installation version de test alternative - getFlashPlayer sysinstall : installation du script dans le système - getFlashPlayer sysremove : désinstallation du script dans le système + getFlashPlayer version : version en ligne de FlashPlayer + getFlashPlayer test : installation version de test de FlashPlayer - ce script agit sur TOUS les utilisateurs déclarés du système - ----------------------------------------------------------------------- + getFlashPlayer sysremove : désinstall du script du système, en ROOT EOF -echo $COLOR + printf $COLOR cat << 'EOF' - Ce script doit être exécuté avec les droits administrateur root - uniquement pour les installations et la suppresion du script dans - le système. + ----------------------------------------------------------------------- + Ce script doit être exécuté avec les droits root uniquement pour + l'installation et la suppresion du script dans le système. 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 - f_avertissement - exit 1 -fi + printf $COLOR +} - -#### fonction version en ligne ========================================= -if [ "$cmd" == "version" ]; then - f_versionFlash - # fin de script - f_info "Version FlashPlayer en ligne: $verFlash." - exit 0 -fi - - -#### remove, on vire flash ============================================= -if [ "$cmd" == "remove" ]; then - # on récupère la liste des users dans $listeUsers - f_allUsers - - # on efface, pour *chaque user déclaré* sur le système - for user in $listeUsers; do - rm -f /home/"$user"/.mozilla/plugins/libflashplayer.* - done - rm -d /home/"$user"/.mozilla/plugins/ &>/dev/null - f_info "$GREEN""FlashPlayer est désinstallé pour tous les utlisateurs.\n" - # fin de script - exit 0 -fi - -#### système install =================================================== -if [ "$cmd" == "sysinstall" ]; then - # root? sinon dehors + # install du script dans le système +f_sysinstall(){ if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi + # on vire 'flashplugin-nonfree' si installé + if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi + # installation dans /opt mkdir -p /opt/bin/ cp -d $0 /opt/bin/ - link /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null - rm $0 &>/dev/null - f_info "$GREEN""le script est installé dans le système.\n" + ln -s /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null +#### rm $0 &>/dev/null + f_info "$GREEN""le script est installé dans le système.\n$BLUE appel du script par$GREEN getFlashPlayer$BLUE (sans ./)" exit 0 -fi +} - -#### système remove ==================================================== -if [ "$cmd" == "sysremove" ]; then - # root? sinon dehors + # suppression du script dans le système +f_sysremove(){ if ! f_root ; then f_error "vous devez être ROOT pour supprimer ce script dans le système"; fi # suppression de /opt rm /opt/bin/getFlashPlayer &>/dev/null unlink /usr/local/bin/getFlashPlayer &>/dev/null f_info "$GREEN""le script est supprimé du système.\n" - exit 0 +} + + # suppression du plugin +f_remove(){ + if f_root ; then f_error "vous ne pouvez pas désinstaller le plugin en tant que ROOT"; fi + # on efface le plugin et le répertoire si vide + rm -f "/home/$USER/.mozilla/plugins/"libflashplayer.* + rm -d "/home/$USER/.mozilla/plugins/" &>/dev/null + f_info "$GREEN""FlashPlayer est désinstallé.\n" +} + + # install plugin dans config user mozilla +f_install(){ + if f_root ; then f_error "vous ne pouvez pas installer le plugin en tant que ROOT"; fi + # debian? sinon dehors / utile? / + if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi + + # information soft daube + f_avertissement + + # architecture > $architecture (version release) + if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi + + # calcul $file, affichage version pendant l'install, calcul $url + file="flash_player_npapi_linux.$architecture.tar.gz" + if [ "$flashTest" == "yes" ]; then + # on change l'architecture pour test + if [ $architecture == "x86_64" ]; then architecture='linux64'; else architecture='linux32'; fi + f_info "installation FlashPlayer, version alternative de test" + url="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/$architecture/" + else + f_versionFlash + f_info "installation FlashPlayer, version $verFlash" + url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/" + fi + + # dossier temporaire de travail + fileTemp="/tmp/flash-file/" + mkdir -p "$fileTemp" + + # chargement flash / à peaufiner les sorties wget / + wget --user-agent="$user_agent" -O $fileTemp$file $url$file &>/dev/null + # gestion erreur wget / à peaufiner / + if [ "$?" != "0" ]; then + f_error "problème au chargement, connexion défaillante?" \ + "Si persistance, merci de prévenir $projet" \ + "$contact" + fi + + # décompression archive téléchargée dans dossier de travail + tar xaf $fileTemp$file -C $fileTemp + + # création répertoire, copie de la biblio dans la config user mozilla et droits(utile?), on efface te temporaire + mkdir -p "/home/$USER/.mozilla/plugins" + cp "$fileTemp"libflashplayer.so "/home/$USER/.mozilla/plugins/" + rm -Rf "$fileTemp" + + # the end + f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/" +} + + +#### traitements arguments ============================================= + +if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" +elif [ "$1" == "install" ]; then cmd="install"; flashTest='no' +elif [ "$1" == "remove" ]; then cmd="remove" +elif [ "$1" == "version" ]; then cmd="version" +elif [ "$1" == "test" ]; then cmd="install"; flashTest='yes' +elif [ "$1" == "sysremove" ]; then cmd="sysremove" +else cmd="help" fi +#### installation script si pas dans le système ======================== +if ! f_scriptBin ; then f_sysinstall; fi + +#### help ============================================================== +if [ "$cmd" == "help" ]; then f_help; f_avertissement; fi + +#### système remove ==================================================== +if [ "$cmd" == "sysremove" ]; then f_sysremove; fi + +#### fonction version en ligne ========================================= +if [ "$cmd" == "version" ]; then f_versionFlash; fi + +#### remove, on vire flash ============================================= +if [ "$cmd" == "remove" ]; then f_remove; fi + #### installation ====================================================== - - # root? sinon dehors -if ! f_root ; then f_error "vous devez être ROOT pour installer"; 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 - - #on récupère la version en ligne -f_versionFlash - - # affichage version en ligne pendant l'install version release -if [ "$cmd" == "install" ]; then - f_info "installation FlashPlayer, version $verFlash" -else - f_info "installation FlashPlayer, version alternative de test" -fi - - # on vire 'flashplugin-nonfree' si installé -if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi - - # architecture? & url alternative pour version test -if [ "$(dpkg --print-architecture)" = "amd64" ]; then - architecture='x86_64' - urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux64/" -else - architecture='i386' - urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/" -fi - - # dossier temporaire de travail -fileTemp="/tmp/flash-file/" -mkdir -p "$fileTemp" - - # variables daube release -url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/" -file="flash_player_npapi_linux.$architecture.tar.gz" - - # chargement flash / à peaufiner les sorties wget / -if [ "$cmd" == "installTest" ]; then - wget --user-agent="$user_agent" -O $fileTemp$file $urlTest$file &>/dev/null -else - wget --user-agent="$user_agent" -O $fileTemp$file $url$file &>/dev/null -fi - - # gestion erreur wget - #1 Generic error code. - #2 Parse error---for instance, when parsing command-line options, the .wgetrc or .netrc... - #3 File I/O error. - #4 Network failure. - #5 SSL verification failure. - #6 Username/password authentication failure. - #7 Protocol errors. - #8 Server issued an error response. -if [ "$?" != "0" ]; then - f_error "problème au chargement, connexion défaillante?" \ - "Si persistance, merci de prévenir $projet" \ - "$contact" -fi - - # décompression archive téléchargée dans dossier de travail -tar xaf $fileTemp$file -C $fileTemp - - # on récupère la liste de tous les users dans $listeUsers -f_allUsers - - # copie de la biblio dans la config user mozilla, pour *chaque user déclaré* sur le système -for user in $listeUsers; do - mkdir -p /home/"$user"/.mozilla/plugins - cp "$fileTemp"libflashplayer.so /home/"$user"/.mozilla/plugins/ - chown -R "$user":"$user" /home/"$user"/.mozilla/plugins -done - - # on efface le dossier temporaire -rm -Rf "$fileTemp" - - # the end -f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/" +if [ "$cmd" == "install" ]; then f_install; fi exit 0