2017-06-06 02:43:07 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2017-06-08 20:43:28 +02:00
|
|
|
version="0.8.2"
|
2017-06-07 01:04:05 +02:00
|
|
|
projet="A définir"
|
|
|
|
contact="A venir"
|
2017-06-08 14:09:19 +02:00
|
|
|
date="08/06/2017"
|
2017-06-06 20:04:42 +02:00
|
|
|
|
|
|
|
##### licence LPRAB/WTFPL
|
2017-06-08 14:09:19 +02:00
|
|
|
# auteurs: kyodev
|
|
|
|
# contibuteurs: coyotus
|
|
|
|
# idée: naguam
|
2017-06-06 02:43:07 +02:00
|
|
|
#####
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### définition couleurs -----------------------------------------------
|
|
|
|
YELLOW=`printf "\033[0;33m"` # ?
|
|
|
|
GREEN=`printf "\033[0;32m"` # ok
|
|
|
|
BLUE=`printf "\033[0;34m"` # info
|
|
|
|
COLOR=`printf "\033[0m"` # standard
|
|
|
|
RED=`printf "\033[0;31m"` # alerte
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### entete ============================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
clear
|
2017-06-06 20:04:42 +02:00
|
|
|
echo "$BLUE"
|
|
|
|
cat << 'EOF'
|
2017-06-06 02:43:07 +02:00
|
|
|
_ _____ _ _ ____ _
|
|
|
|
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
|
|
|
|
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__|
|
|
|
|
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
|
|
|
|
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|
|
|
|
|___/ |___/
|
2017-06-08 14:09:19 +02:00
|
|
|
|
2017-06-06 02:43:07 +02:00
|
|
|
EOF
|
2017-06-08 14:09:19 +02:00
|
|
|
echo -e "$YELLOW pour Firefox sur Debian, \t version $version - $date\n$COLOR"
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### fonctions diverses ================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# sortie sur erreur
|
2017-06-08 14:09:19 +02:00
|
|
|
f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu, sortie du script
|
2017-06-06 20:04:42 +02:00
|
|
|
echo -e "\n$RED Erreur critique: $1 $COLOR"
|
|
|
|
for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done
|
|
|
|
echo "$COLOR"
|
|
|
|
exit 1
|
2017-06-06 02:43:07 +02:00
|
|
|
}
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# affichage information
|
|
|
|
f_info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin
|
|
|
|
echo -e " $BLUE $@ $COLOR\n"
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#debian? return 0 else 1
|
|
|
|
f_debian(){
|
2017-06-08 14:09:19 +02:00
|
|
|
if [ -f /etc/debian_version ]; then return 0; else return 1; fi
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# root? return 0 else 1
|
|
|
|
f_root(){
|
2017-06-08 14:09:19 +02:00
|
|
|
if [ $EUID -eq 0 ]; then return 0; else return 1; fi
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
|
|
|
|
#### fonctions script ==================================================
|
|
|
|
|
2017-06-08 20:43:28 +02:00
|
|
|
# version Flash en ligne, $verFlash, $user_agent, $urlOnline
|
|
|
|
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/20100101 Firefox"
|
2017-06-06 20:04:42 +02:00
|
|
|
f_versionFlash(){
|
|
|
|
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]')
|
2017-06-08 14:09:19 +02:00
|
|
|
f_info "Version FlashPlayer en ligne: $verFlash."
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# pas bô ce soft :(
|
2017-06-06 20:04:42 +02:00
|
|
|
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.
|
|
|
|
Il souffre de nombreuses vulnérabilités chroniques, depuis des années
|
|
|
|
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état
|
|
|
|
de fait...
|
|
|
|
Il sera donc bloqué à plus ou moins court terme pas les navigateurs
|
|
|
|
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
EOF
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# affichage help
|
|
|
|
f_help(){
|
|
|
|
printf $BLUE
|
2017-06-06 20:04:42 +02:00
|
|
|
cat << 'EOF'
|
2017-06-07 03:12:35 +02:00
|
|
|
-----------------------------------------------------------------------
|
2017-06-08 14:09:19 +02:00
|
|
|
./getFlashPlayer : installation du script dans le système, en ROOT
|
|
|
|
|
|
|
|
getFlashPlayer install : téléchargement & installation de FlashPlayer
|
2017-06-07 03:12:35 +02:00
|
|
|
getFlashPlayer remove : désinstallation de FlashPlayer
|
2017-06-08 14:09:19 +02:00
|
|
|
getFlashPlayer version : version en ligne de FlashPlayer
|
|
|
|
getFlashPlayer test : installation version de test de FlashPlayer
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
getFlashPlayer sysremove : désinstall du script du système, en ROOT
|
2017-06-06 20:04:42 +02:00
|
|
|
EOF
|
2017-06-08 14:09:19 +02:00
|
|
|
printf $COLOR
|
2017-06-06 20:04:42 +02:00
|
|
|
cat << 'EOF'
|
2017-06-08 14:09:19 +02:00
|
|
|
-----------------------------------------------------------------------
|
|
|
|
Ce script doit être exécuté avec les droits root uniquement pour
|
|
|
|
l'installation et la suppresion du script dans le système.
|
2017-06-06 20:04:42 +02:00
|
|
|
Il désinstallera le paquet flashplugin-nonfree si présent.
|
2017-06-08 14:09:19 +02:00
|
|
|
Seul le plugin sera installé, en tant que plugin mozilla Firefox.
|
2017-06-07 03:12:35 +02:00
|
|
|
Ce script devrait fonctionner sur Ubuntu.
|
|
|
|
-----------------------------------------------------------------------
|
2017-06-06 20:04:42 +02:00
|
|
|
EOF
|
2017-06-08 14:09:19 +02:00
|
|
|
printf $COLOR
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# install du script dans le système
|
|
|
|
f_sysinstall(){
|
2017-06-07 03:12:35 +02:00
|
|
|
if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi
|
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# on vire 'flashplugin-nonfree' si installé
|
|
|
|
if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi
|
|
|
|
|
2017-06-07 03:12:35 +02:00
|
|
|
# installation dans /opt
|
|
|
|
mkdir -p /opt/bin/
|
|
|
|
cp -d $0 /opt/bin/
|
2017-06-08 14:09:19 +02:00
|
|
|
ln -s /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null
|
2017-06-08 20:45:27 +02:00
|
|
|
rm $0 &>/dev/null
|
2017-06-08 14:09:19 +02:00
|
|
|
f_info "$GREEN""le script est installé dans le système.\n$BLUE appel du script par$GREEN getFlashPlayer$BLUE (sans ./)"
|
2017-06-07 03:12:35 +02:00
|
|
|
exit 0
|
2017-06-08 14:09:19 +02:00
|
|
|
}
|
2017-06-07 03:12:35 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# suppression du script dans le système
|
|
|
|
f_sysremove(){
|
2017-06-07 03:12:35 +02:00
|
|
|
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"
|
2017-06-08 14:09:19 +02:00
|
|
|
}
|
2017-06-07 03:12:35 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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"
|
|
|
|
}
|
2017-06-06 03:10:44 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# information soft daube
|
|
|
|
f_avertissement
|
|
|
|
|
|
|
|
# architecture > $architecture (version release)
|
|
|
|
if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# dossier temporaire de travail
|
|
|
|
fileTemp="/tmp/flash-file/"
|
|
|
|
mkdir -p "$fileTemp"
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# décompression archive téléchargée dans dossier de travail
|
|
|
|
tar xaf $fileTemp$file -C $fileTemp
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# 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"
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
# the end
|
|
|
|
f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/"
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### traitements arguments =============================================
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
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"
|
2017-06-06 20:04:42 +02:00
|
|
|
fi
|
|
|
|
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### installation script si pas dans le système ========================
|
|
|
|
if ! f_scriptBin ; then f_sysinstall; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### help ==============================================================
|
|
|
|
if [ "$cmd" == "help" ]; then f_help; f_avertissement; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### système remove ====================================================
|
|
|
|
if [ "$cmd" == "sysremove" ]; then f_sysremove; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### fonction version en ligne =========================================
|
|
|
|
if [ "$cmd" == "version" ]; then f_versionFlash; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### remove, on vire flash =============================================
|
|
|
|
if [ "$cmd" == "remove" ]; then f_remove; fi
|
|
|
|
|
|
|
|
#### installation ======================================================
|
|
|
|
if [ "$cmd" == "install" ]; then f_install; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
exit 0
|