kyopages/scripts/getFlashPlayer

272 lines
8.8 KiB
Plaintext
Raw Normal View History

2017-06-06 02:43:07 +02:00
#!/bin/bash
2017-06-08 11:26:11 +02:00
version="0.7.1rc"
2017-06-07 01:04:05 +02:00
projet="A définir"
contact="A venir"
2017-06-06 20:04:42 +02:00
##### licence LPRAB/WTFPL
# auteur kyodev
# contibuteurs naguam / coyotus / arpinux
# 06/2017
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-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
_ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__|
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/
EOF
2017-06-06 20:04:42 +02:00
echo -e "$YELLOW pour Firefox sur Debian, \t version $version\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
f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu
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(){
if [ -f /etc/debian_version ]; then
return 0
else
return 1
fi
}
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# root? return 0 else 1
f_root(){
if [ $EUID -eq 0 ]; then
return 0
else
return 1
fi
}
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# 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' ' ')
}
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# version Flash en ligne, assign $verFlash, assigne $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]')
}
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# pas bô ce soft :( ================================================
f_avertissement(){
cat << 'EOF'
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
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-06 20:04:42 +02:00
#### traitements arguments =============================================
if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments"
elif [ "$1" == "install" ]; then cmd="install"
2017-06-07 03:12:35 +02:00
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"
2017-06-06 20:04:42 +02:00
else cmd="help"
fi
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
if [ "$cmd" == "help" ]; then
# HELP si pas d'arguments ou mauvais argument
echo "$BLUE"
cat << 'EOF'
2017-06-07 03:12:35 +02:00
-----------------------------------------------------------------------
getFlashPlayer install : téléchargement et installation de FlashPlayer
getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : récupération version en ligne de FlashPlayer
2017-06-06 20:04:42 +02:00
getFlashPlayer test : installation version de test alternative
2017-06-07 03:12:35 +02:00
getFlashPlayer sysinstall : installation du script dans le système
getFlashPlayer sysremove : désinstallation du script dans le système
2017-06-06 20:04:42 +02:00
ce script agit sur TOUS les utilisateurs déclarés du système
2017-06-07 03:12:35 +02:00
-----------------------------------------------------------------------
2017-06-06 20:04:42 +02:00
EOF
echo $COLOR
cat << 'EOF'
Ce script doit être exécuté avec les droits administrateur root
2017-06-07 03:12:35 +02:00
uniquement pour les installations 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.
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
f_avertissement
2017-06-06 02:43:07 +02:00
exit 1
fi
2017-06-06 20:04:42 +02:00
#### fonction version en ligne =========================================
if [ "$cmd" == "version" ]; then
f_versionFlash
# fin de script
f_info "Version FlashPlayer en ligne: $verFlash."
exit 0
fi
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
#### remove, on vire flash =============================================
if [ "$cmd" == "remove" ]; then
2017-06-06 02:43:07 +02:00
# 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
2017-06-06 03:10:44 +02:00
rm -f /home/"$user"/.mozilla/plugins/libflashplayer.*
2017-06-06 02:43:07 +02:00
done
2017-06-07 01:04:05 +02:00
rm -d /home/"$user"/.mozilla/plugins/ &>/dev/null
2017-06-06 20:04:42 +02:00
f_info "$GREEN""FlashPlayer est désinstallé pour tous les utlisateurs.\n"
# fin de script
2017-06-06 02:43:07 +02:00
exit 0
fi
2017-06-07 03:12:35 +02:00
#### système install ===================================================
if [ "$cmd" == "sysinstall" ]; then
# root? sinon dehors
if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; 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"
exit 0
fi
#### système remove ====================================================
if [ "$cmd" == "sysremove" ]; then
# root? sinon dehors
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
fi
2017-06-06 03:10:44 +02:00
2017-06-06 20:04:42 +02:00
#### installation ======================================================
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# root? sinon dehors
if ! f_root ; then f_error "vous devez être ROOT pour installer"; fi
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# 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
# information soft daube
2017-06-06 20:04:42 +02:00
f_avertissement
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
#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"
2017-06-06 02:43:07 +02:00
fi
2017-06-06 20:04:42 +02:00
# on vire 'flashplugin-nonfree' si installé
2017-06-08 11:26:11 +02:00
if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi
2017-06-06 20:04:42 +02:00
# architecture? & url alternative pour version test
2017-06-06 02:43:07 +02:00
if [ "$(dpkg --print-architecture)" = "amd64" ]; then
architecture='x86_64'
2017-06-06 20:04:42 +02:00
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux64/"
2017-06-06 02:43:07 +02:00
else
architecture='i386'
2017-06-06 20:04:42 +02:00
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/"
2017-06-06 02:43:07 +02:00
fi
# dossier temporaire de travail
fileTemp="/tmp/flash-file/"
mkdir -p "$fileTemp"
2017-06-06 20:04:42 +02:00
# 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?" \
2017-06-07 01:04:05 +02:00
"Si persistance, merci de prévenir $projet" \
2017-06-06 20:04:42 +02:00
"$contact"
fi
2017-06-06 02:43:07 +02:00
2017-06-06 20:04:42 +02:00
# décompression archive téléchargée dans dossier de travail
2017-06-06 02:43:07 +02:00
tar xaf $fileTemp$file -C $fileTemp
2017-06-06 20:04:42 +02:00
# on récupère la liste de tous les users dans $listeUsers
2017-06-06 02:43:07 +02:00
f_allUsers
2017-06-06 20:04:42 +02:00
# copie de la biblio dans la config user mozilla, pour *chaque user déclaré* sur le système
2017-06-06 02:43:07 +02:00
for user in $listeUsers; do
2017-06-06 03:10:44 +02:00
mkdir -p /home/"$user"/.mozilla/plugins
cp "$fileTemp"libflashplayer.so /home/"$user"/.mozilla/plugins/
chown -R "$user":"$user" /home/"$user"/.mozilla/plugins
2017-06-06 02:43:07 +02:00
done
# on efface le dossier temporaire
rm -Rf "$fileTemp"
# the end
2017-06-06 20:04:42 +02:00
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
exit 0