This commit is contained in:
kyodev 2017-06-08 14:09:19 +02:00
parent 26323d3884
commit 19744e36b8
2 changed files with 178 additions and 238 deletions

View File

@ -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)

View File

@ -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