kyopages/scripts/getFlashPlayer

238 lines
8.3 KiB
Plaintext
Raw Normal View History

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