2017-06-06 02:43:07 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2017-07-18 16:47:33 +02:00
|
|
|
version=2.6.1
|
2017-07-18 01:25:29 +02:00
|
|
|
date="18/07/2017"
|
2017-06-10 00:21:43 +02:00
|
|
|
projet="Kyodev"
|
|
|
|
contact="https://framagit.org/kyodev/kyopages/issues"
|
|
|
|
script="getFlashPlayer"
|
2017-07-13 01:13:52 +02:00
|
|
|
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer"
|
2017-07-14 18:40:49 +02:00
|
|
|
user_agent="Mozilla/5.0 (X11; Linux $(uname -m); rv:54.0) Gecko/20100101 Firefox/54.0"
|
2017-07-13 01:13:52 +02:00
|
|
|
|
2017-06-10 21:16:48 +02:00
|
|
|
##### license LPRAB/WTFPL
|
2017-06-08 14:09:19 +02:00
|
|
|
# auteurs: kyodev
|
2017-07-16 19:09:17 +02:00
|
|
|
# contibuteur: coyotus, naguam
|
2017-06-08 14:09:19 +02:00
|
|
|
# idée: naguam
|
2017-06-06 02:43:07 +02:00
|
|
|
#####
|
|
|
|
|
2017-07-14 18:40:49 +02:00
|
|
|
PATH='/bin:/usr/bin' ; IFS=' '
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### définition couleurs -----------------------------------------------
|
2017-07-17 13:38:04 +02:00
|
|
|
YELLOW=`printf "\033[0;33m"` # divers
|
2017-06-06 20:04:42 +02:00
|
|
|
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
|
|
|
_ _____ _ _ ____ _
|
|
|
|
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
|
|
|
|
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__|
|
|
|
|
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
|
|
|
|
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|
|
|
|
|___/ |___/
|
2017-06-08 14:09:19 +02:00
|
|
|
|
2017-06-06 02:43:07 +02:00
|
|
|
EOF
|
2017-06-10 00:21:43 +02:00
|
|
|
echo -e "$YELLOW pour Firefox sur Debian, 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-07-12 06:24:41 +02:00
|
|
|
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome
|
|
|
|
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
|
|
|
|
# USER_INSTALL=user script
|
2017-06-21 20:15:27 +02:00
|
|
|
f__user(){
|
2017-07-12 06:24:41 +02:00
|
|
|
# user_ via variable en environnement
|
|
|
|
test "$USER_INSTALL" && user_="$USER_INSTALL"
|
|
|
|
# sudo ou gnome: uid
|
|
|
|
test "$SUDO_UID" && user_id="$SUDO_UID" || user_id="$(echo "$XAUTHORITY" | grep -Eo '[0-9]+')"
|
|
|
|
# si user_ vide, extraction classique user dans XAUTHORITY, donc priorité à $USER_INSTALL
|
|
|
|
test "$user_" || user_="$(echo "$XAUTHORITY" | cut -d "/" -f 3)"
|
|
|
|
# si user_id, extraction via passwd
|
|
|
|
test "$user_id" && user_="$(grep "$user_" /etc/passwd | cut -d ":" -f 1 )"
|
|
|
|
# derniers tests, home existant ou user_ défini
|
|
|
|
if [ "$user_" ]; then
|
2017-07-17 03:14:54 +02:00
|
|
|
ls "/home/$user_" &>/dev/null || f__error "répertoire /home/$user_ INEXISTANT"
|
2017-07-12 06:24:41 +02:00
|
|
|
else
|
2017-07-17 13:38:04 +02:00
|
|
|
f__error "user indéterminé" " lancer le script avec:\n\tUSER_INSTALL=user $0"
|
2017-07-12 06:24:41 +02:00
|
|
|
fi
|
2017-06-21 20:15:27 +02:00
|
|
|
}
|
|
|
|
|
2017-07-16 19:09:17 +02:00
|
|
|
# test cnx réseau et résolution, return 0 si ok else 1
|
2017-06-21 20:15:27 +02:00
|
|
|
f__cnxTest(){
|
2017-07-17 13:38:04 +02:00
|
|
|
wget -q --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "free.fr" || return 1
|
2017-06-21 20:15:27 +02:00
|
|
|
}
|
|
|
|
|
2017-07-17 13:38:04 +02:00
|
|
|
# sortie sur erreur, log $1 si upgrade
|
2017-07-17 03:14:54 +02:00
|
|
|
f__error() { #affichage $1 en rouge, $1++ optionnels en bleu, sortie du script, log $1 si upgrade
|
2017-06-06 20:04:42 +02:00
|
|
|
echo -e "\n$RED Erreur critique: $1 $COLOR"
|
2017-07-17 13:38:04 +02:00
|
|
|
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
|
2017-06-06 20:04:42 +02:00
|
|
|
echo "$COLOR"
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ "$opType" == "upgrade" ]; then logger --id -p user.err "$script $version: <erreur> $1"; fi
|
2017-06-06 20:04:42 +02:00
|
|
|
exit 1
|
2017-06-06 02:43:07 +02:00
|
|
|
}
|
|
|
|
|
2017-07-17 03:14:54 +02:00
|
|
|
# affichage information, log $1 si upgrade
|
2017-06-21 20:15:27 +02:00
|
|
|
f__info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin
|
2017-07-17 13:38:04 +02:00
|
|
|
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
|
|
|
|
echo "$COLOR"
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi
|
2017-06-21 20:15:27 +02:00
|
|
|
}
|
|
|
|
|
2017-07-17 13:38:04 +02:00
|
|
|
#test dépendances (commandes disponibles), $1 liste commandes
|
|
|
|
f__requis(){
|
|
|
|
for i in "$@"; do
|
|
|
|
if [ ! "$(which $i)" ]; then
|
|
|
|
testDepends="ko"
|
|
|
|
f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
|
|
|
|
fi
|
|
|
|
done
|
2017-07-17 20:11:48 +02:00
|
|
|
[ -z "$testDepends" ] || f__error "Paquets manquants" " Contacter administrateur pour disposer de ces commandes"
|
2017-07-17 13:38:04 +02:00
|
|
|
}
|
|
|
|
|
2017-07-13 17:08:36 +02:00
|
|
|
# root? return 0 si root else 1
|
2017-06-21 20:15:27 +02:00
|
|
|
f__root(){
|
2017-07-16 19:09:17 +02:00
|
|
|
if [ $EUID == 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-07-17 13:38:04 +02:00
|
|
|
# test wget, $1 url à tester, retourne url testée & entêtes
|
2017-07-13 11:32:01 +02:00
|
|
|
f__testWget(){
|
|
|
|
echo " $1"
|
2017-07-17 13:38:04 +02:00
|
|
|
wget -Sq --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "$1"
|
|
|
|
f__error "Erreur wget" " réessayer et si persistance, contacter $projet $contact" " en indiquant les messages précédents."
|
2017-07-13 11:32:01 +02:00
|
|
|
}
|
2017-06-08 14:09:19 +02:00
|
|
|
|
2017-07-13 17:08:36 +02:00
|
|
|
# test validité archive, $1 fichier (gzip), return 1 si invalide
|
|
|
|
f__testArchive(){
|
2017-07-17 03:14:54 +02:00
|
|
|
file -b "$1" | grep 'gzip compressed data' &>/dev/null && archive_detect="gzip" || return 1
|
2017-07-13 17:08:36 +02:00
|
|
|
}
|
|
|
|
|
2017-06-08 14:09:19 +02:00
|
|
|
#### fonctions script ==================================================
|
|
|
|
|
2017-07-13 11:32:01 +02:00
|
|
|
# install du script dans le système
|
|
|
|
fscript_install(){
|
2017-07-16 19:09:17 +02:00
|
|
|
# si script inexistant ou inaccessible en écriture, ou si cronAnacron non installé: root requis
|
2017-07-18 16:47:33 +02:00
|
|
|
if [ ! -w "/opt/bin/$script" ] || [ ! -e "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" ]; then
|
2017-07-16 19:09:17 +02:00
|
|
|
f__root || f__error "vous devez être ROOT pour installer ce script dans le système"
|
|
|
|
if [ "$(which dpkg)" ]; then
|
|
|
|
# on vire 'flashplugin-nonfree' si installé et dpkg possible (debian)
|
|
|
|
dpkg --get-selections | grep '^flashplugin-nonfree[[:space:]]' &>/dev/null && apt-get purge flashplugin-nonfree
|
|
|
|
fi
|
2017-07-18 16:47:33 +02:00
|
|
|
# install /opt
|
2017-07-14 03:07:37 +02:00
|
|
|
mkdir -p /opt/bin/
|
2017-07-18 16:47:33 +02:00
|
|
|
ln -s /opt/bin/"$script" /usr/local/bin/"$script" &>/dev/null
|
|
|
|
cp -d "$(basename $0)" "/opt/bin/$script"
|
2017-07-18 01:25:29 +02:00
|
|
|
chmod a+rwx "/opt/bin/$script"
|
|
|
|
chown "$user_": "/opt/bin/$script"
|
2017-07-14 03:07:37 +02:00
|
|
|
# cron/anacron install
|
|
|
|
fscript_cronAnacron install
|
2017-07-18 16:47:33 +02:00
|
|
|
else # maj en user (upgrade manuel ou auto)
|
2017-07-18 01:25:29 +02:00
|
|
|
chmod a+rwx "$(basename $0)"
|
|
|
|
chown "$user_": "$(basename $0)"
|
2017-07-18 16:47:33 +02:00
|
|
|
cp -d "$(basename $0)" "/opt/bin/$script"
|
2017-07-14 03:07:37 +02:00
|
|
|
fi
|
2017-07-14 18:40:49 +02:00
|
|
|
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
|
2017-07-17 13:38:04 +02:00
|
|
|
f__info "$GREEN$script installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
|
2017-07-13 11:32:01 +02:00
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# suppression du script dans le système
|
|
|
|
fscript_remove(){
|
2017-07-16 19:09:17 +02:00
|
|
|
f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système"
|
2017-07-13 11:32:01 +02:00
|
|
|
# suppression de /opt
|
|
|
|
rm /opt/bin/"$script" &>/dev/null
|
|
|
|
unlink /usr/local/bin/"$script" &>/dev/null
|
2017-07-18 16:47:33 +02:00
|
|
|
# cron/anacron remove
|
2017-07-13 11:32:01 +02:00
|
|
|
fscript_cronAnacron remove
|
2017-07-17 13:38:04 +02:00
|
|
|
f__info "$GREEN$script supprimé du système."
|
2017-07-13 11:32:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# version script en ligne, assigne $versionScript, $uptd_script=""|ko,
|
|
|
|
fscript_version(){
|
2017-07-17 13:38:04 +02:00
|
|
|
versionScript="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
|
2017-07-13 11:32:01 +02:00
|
|
|
if [ "$version" != "$versionScript" ]; then
|
|
|
|
f__info "version script en ligne: $versionScript, mise à jour possible"
|
|
|
|
uptd_script="ko"
|
|
|
|
else uptd_script=""; fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# mise à jour script si dispo
|
|
|
|
fscript_dl(){
|
|
|
|
if [ "$uptd_script" != "ko" ]; then return 0; fi
|
|
|
|
dirTemp="/tmp/$script-$RANDOM/"
|
|
|
|
mkdir -p "$dirTemp"
|
2017-07-17 23:41:52 +02:00
|
|
|
wget -q --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript"
|
2017-07-13 11:32:01 +02:00
|
|
|
if [ "$?" != "0" ]; then f__testWget "$urlScript"; fi
|
2017-07-18 01:25:29 +02:00
|
|
|
chmod a+rwx "$dirTemp$script"
|
|
|
|
chown "$user_": "$dirTemp$script"
|
2017-07-14 03:07:37 +02:00
|
|
|
cp -d "$dirTemp$script" /opt/bin/"$script"
|
2017-07-18 16:47:33 +02:00
|
|
|
rm -rf "$dirTemp"
|
2017-07-17 13:38:04 +02:00
|
|
|
echo ""; f__info "$script mis à jour en version $versionScript"
|
2017-07-18 16:47:33 +02:00
|
|
|
$0 upgrade #script mis à jour, on relance le script en upgrade (pour le plugin)
|
2017-07-18 01:25:29 +02:00
|
|
|
exit 0
|
2017-07-13 11:32:01 +02:00
|
|
|
}
|
|
|
|
|
2017-07-14 03:07:37 +02:00
|
|
|
#inscription dans tache upgrade en cron hebdomadaire, une partie requiert root
|
2017-07-13 11:32:01 +02:00
|
|
|
fscript_cronAnacron(){
|
|
|
|
case "$1" in
|
|
|
|
"install" )
|
|
|
|
# création répertoire plugin/
|
|
|
|
mkdir -p "/home/$user_/.mozilla/plugins"
|
|
|
|
chown "$user_": "/home/$user_/.mozilla/plugins"
|
|
|
|
# table anacron
|
2017-07-16 19:09:17 +02:00
|
|
|
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab"
|
|
|
|
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab"
|
|
|
|
chown "$user_": "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab"
|
2017-07-13 11:32:01 +02:00
|
|
|
# création spool anacron utilisateur
|
2017-07-16 19:09:17 +02:00
|
|
|
mkdir -p "/home/$user_/.config/anacron/spool"
|
|
|
|
chown "$user_": "/home/$user_/.config/anacron/spool"
|
2017-07-18 16:47:33 +02:00
|
|
|
# cron tab pour activation horaire anacron
|
2017-07-16 19:09:17 +02:00
|
|
|
echo "@hourly $user_ /usr/sbin/anacron -t /home/$user_/.mozilla/plugins/libflashplayer.anacrontab -S /home/$user_/.config/anacron/spool" >> /etc/crontab
|
2017-07-13 11:32:01 +02:00
|
|
|
;;
|
|
|
|
"remove" )
|
2017-07-18 16:47:33 +02:00
|
|
|
[ -e "/home/$user_/.config/anacron/spool/getFP" ] && rm "/home/$user_/.config/anacron/spool/getFP"
|
|
|
|
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
|
|
|
|
rm "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab"
|
2017-07-16 19:09:17 +02:00
|
|
|
;;
|
2017-07-13 11:32:01 +02:00
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2017-07-13 01:13:52 +02:00
|
|
|
# version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptd_plug=""|ko, $urlOnline,
|
2017-07-13 17:08:36 +02:00
|
|
|
fflash_version(){
|
2017-07-17 19:18:36 +02:00
|
|
|
urlOnline="https://get.adobe.com/fr/flashplayer/"
|
2017-07-17 03:14:54 +02:00
|
|
|
if ! f__cnxTest; then f__error "pas de connexion internet"; fi
|
2017-07-17 13:38:04 +02:00
|
|
|
verFlash="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlOnline" | \
|
|
|
|
sed -nr 's/^.*AUTO_ID.*Version[[:blank:]]+([0-9].*[0-9]).*$/\1/p')" || verFlash="na"
|
2017-07-13 11:32:01 +02:00
|
|
|
if [ "$?" != "0" ]; then f__testWget "$urlOnline"; fi
|
2017-07-17 13:38:04 +02:00
|
|
|
verInstall="$(cat /home/"$user_"/.mozilla/plugins/libflashplayer.version 2>/dev/null)"
|
2017-07-13 01:13:52 +02:00
|
|
|
uptd_plug=""
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible";
|
2017-06-21 20:15:27 +02:00
|
|
|
else f__info "version FlashPlayer en ligne: $verFlash"; fi
|
2017-07-13 11:32:01 +02:00
|
|
|
if [ "$verInstall" == "" ]; then f__info "FlashPlayer non installé"; return 0; fi
|
|
|
|
if [ "$verInstall" == "$verFlash" ]; then f__info "FlashPlayer à jour";
|
|
|
|
else
|
2017-07-17 13:38:04 +02:00
|
|
|
f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
|
2017-07-13 11:32:01 +02:00
|
|
|
uptd_plug="ko"
|
|
|
|
fi
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
# pas beau ce soft :(
|
2017-07-13 11:32:01 +02:00
|
|
|
fflash_avert(){
|
2017-06-06 20:04:42 +02:00
|
|
|
cat << 'EOF'
|
2017-06-22 17:02:42 +02:00
|
|
|
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on
|
2017-06-06 20:04:42 +02:00
|
|
|
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
|
2017-07-17 13:38:04 +02:00
|
|
|
sans que l'éditeur fasse beaucoup d'efforts pour corriger cela...
|
|
|
|
Il sera 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
|
2017-07-13 11:32:01 +02:00
|
|
|
fflash_help(){
|
2017-06-08 14:09:19 +02:00
|
|
|
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
|
|
|
|
|
2017-06-16 13:08:58 +02:00
|
|
|
getFlashPlayer install : téléchargement & installation & update Flash
|
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
|
2017-07-13 01:13:52 +02:00
|
|
|
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire
|
2017-06-10 21:16:48 +02:00
|
|
|
----
|
2017-07-13 17:08:36 +02:00
|
|
|
getFlashPlayer manuel fichier.tar.gz : installation d'une archive
|
|
|
|
téléchargée manuellement
|
|
|
|
----
|
2017-06-10 00:21:43 +02:00
|
|
|
getFlashPlayer sysremove : désinstall du script du système, en ROOT
|
2017-06-06 20:04:42 +02:00
|
|
|
EOF
|
2017-06-10 21:16:48 +02:00
|
|
|
printf $COLOR; cat << 'EOF'
|
2017-06-08 14:09:19 +02:00
|
|
|
-----------------------------------------------------------------------
|
|
|
|
Ce script doit être exécuté avec les droits root uniquement pour
|
2017-07-17 13:38:04 +02:00
|
|
|
l'installation et la suppression 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-22 17:02:42 +02:00
|
|
|
Seul le plugin sera installé, en tant que plugin Mozilla Firefox.
|
2017-06-07 03:12:35 +02:00
|
|
|
-----------------------------------------------------------------------
|
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-07-17 13:38:04 +02:00
|
|
|
# calcul url téléchargement plugin, assigne $recup_url,
|
|
|
|
fflash_detect_url_v1(){
|
2017-07-16 19:09:17 +02:00
|
|
|
recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/"
|
|
|
|
if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then recup2='i386';
|
|
|
|
elif [ "$(uname -m)" == "x86_64" ] || [ "$(uname -m)" == "amd64" ]; then recup2='x86_64';
|
|
|
|
else f__error "architecture non reconnue" ; fi
|
|
|
|
recup_url="$recup1$verFlash/flash_player_npapi_linux.$recup2.tar.gz"
|
2017-07-17 13:38:04 +02:00
|
|
|
}
|
2017-07-14 18:40:49 +02:00
|
|
|
|
2017-07-17 03:14:54 +02:00
|
|
|
# install plugin dans config user mozilla, $1 manuel (install manuelle), # $2 script à installer si install manuelle
|
2017-07-13 11:32:01 +02:00
|
|
|
fflash_install(){
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ "$opType" != "upgrade" ]; then fflash_avert; fi
|
|
|
|
if [ "$1" == "manuel" ]; then
|
2017-07-13 17:08:36 +02:00
|
|
|
file="$(basename $2)"
|
|
|
|
dirTemp="$(dirname $2)/$script-$RANDOM/"
|
|
|
|
mkdir -p "$dirTemp"
|
|
|
|
else
|
2017-07-16 19:09:17 +02:00
|
|
|
file="flash_player_npapi_linux.$(getconf LONG_BIT).tar.gz"
|
2017-07-14 18:40:49 +02:00
|
|
|
# calcul $file, affichage version pendant l'install
|
2017-07-17 13:38:04 +02:00
|
|
|
if [ $verFlash == "na" ]; then fflash_version; fi
|
2017-07-13 17:08:36 +02:00
|
|
|
f__info "installation FlashPlayer, version $verFlash"
|
|
|
|
|
|
|
|
# dossier temporaire de travail, création
|
|
|
|
dirTemp="/tmp/$script-$RANDOM/"
|
|
|
|
mkdir -p "$dirTemp"
|
|
|
|
|
2017-07-17 13:38:04 +02:00
|
|
|
# détection/chargement/test archive plugin flashplayer
|
|
|
|
fflash_detect_url_v1
|
|
|
|
wget -q -c --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" --referer="$urlOnline" -O "$dirTemp$file" "$recup_url"
|
|
|
|
if [ "$?" != "0" ]; then f__testWget "$recup_url"; fi
|
2017-07-17 03:14:54 +02:00
|
|
|
f__testArchive "$dirTemp$file" || f__error " Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
|
2017-06-08 14:09:19 +02:00
|
|
|
fi
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-07-16 19:09:17 +02:00
|
|
|
mkdir -p "$dirTemp"
|
2017-06-08 14:09:19 +02:00
|
|
|
# décompression archive téléchargée dans dossier de travail
|
2017-07-13 17:08:36 +02:00
|
|
|
if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ "$1" == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
# copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire
|
2017-07-16 19:09:17 +02:00
|
|
|
mkdir -p "/home/$user_/.mozilla/plugins/"
|
2017-06-21 20:15:27 +02:00
|
|
|
cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/"
|
2017-06-10 00:21:43 +02:00
|
|
|
rm -Rf "$dirTemp"
|
2017-06-06 20:04:42 +02:00
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
# marqueur version et maj dans plugins/ user mozilla
|
2017-07-17 03:14:54 +02:00
|
|
|
echo "$verFlash" > "/home/$user_/.mozilla/plugins/libflashplayer.version"
|
|
|
|
touch "/home/$user_/.mozilla/plugins/libflashplayer.maj"
|
2017-06-21 20:15:27 +02:00
|
|
|
|
2017-07-17 03:14:54 +02:00
|
|
|
# droits user si jamais installation par root
|
|
|
|
chown -R "$user_": "/home/$user_/.mozilla/plugins"
|
2017-06-10 10:39:57 +02:00
|
|
|
|
2017-07-17 13:38:04 +02:00
|
|
|
echo ""; f__info "FlashPlayer $verFlash installé ou mis à jour pour $user_" "\tPour tester: http://get.adobe.com/flashplayer/about/"
|
2017-07-13 11:32:01 +02:00
|
|
|
}
|
|
|
|
|
2017-07-17 03:14:54 +02:00
|
|
|
# test et mise à jour plugin si plugin outdated
|
2017-07-13 11:32:01 +02:00
|
|
|
fflash_upgrade(){
|
2017-07-17 03:14:54 +02:00
|
|
|
if [ "$uptd_plug" == "ko" ]; then fflash_install; fi
|
2017-06-08 14:09:19 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
# suppression du plugin
|
2017-07-13 11:32:01 +02:00
|
|
|
fflash_remove(){
|
2017-07-16 19:09:17 +02:00
|
|
|
# on efface le plugin, mais la tache anacron le sera par script remove
|
|
|
|
[ -e /home/kyodev/.mozilla/plugins/libflashplayer.so ] || f__error "FlashPlayer déjà désinstallé pour $user_\n"
|
|
|
|
verFlashRemove="$(strings /home/$user_/.mozilla/plugins/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
|
|
|
|
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.maj"
|
|
|
|
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.so"
|
|
|
|
rm -f "/home/$user_/.mozilla/plugins/libflashplayer.version"
|
2017-07-17 13:38:04 +02:00
|
|
|
f__info "$GREEN FlashPlayer $verFlashRemove désinstallé pour $user_"
|
2017-07-13 01:13:52 +02:00
|
|
|
}
|
2017-06-10 21:16:48 +02:00
|
|
|
|
2017-07-13 17:08:36 +02:00
|
|
|
# installation du plugin chargé manuellement, $1
|
|
|
|
fflash_manuelInstall(){
|
|
|
|
if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi
|
|
|
|
f__testArchive "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide"
|
|
|
|
f__info "installation manuelle $1"
|
2017-07-17 03:14:54 +02:00
|
|
|
fflash_install "manuel" "$1"
|
2017-07-13 17:08:36 +02:00
|
|
|
}
|
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
### début script =======================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-21 20:15:27 +02:00
|
|
|
#initialisation
|
|
|
|
f__user
|
|
|
|
verFlash="na"
|
2017-07-17 13:38:04 +02:00
|
|
|
f__requis "wget" "logger" "file"
|
2017-07-18 16:47:33 +02:00
|
|
|
[ -e "/opt/bin/$script" ] && ls -l "/opt/bin/$script" | grep 'root' &>/dev/null && f__error "bug sécu 01" \
|
|
|
|
"veuillez désinstaller le script et le réinstaller" "voir: $urlNotice#supprimer-le-script"
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-07-13 17:08:36 +02:00
|
|
|
# installation du script si pas dans le système
|
2017-07-14 03:07:37 +02:00
|
|
|
dirname "$0" | grep 'bin' &>/dev/null || fscript_install
|
2017-06-21 20:15:27 +02:00
|
|
|
|
2017-07-13 01:13:52 +02:00
|
|
|
case "$1" in
|
2017-06-21 20:15:27 +02:00
|
|
|
"install" )
|
2017-07-17 13:38:04 +02:00
|
|
|
fflash_install;; # installation plugin
|
2017-06-21 20:15:27 +02:00
|
|
|
"remove" )
|
2017-07-13 17:08:36 +02:00
|
|
|
fflash_remove ;; # désinstallation plugin
|
2017-06-21 20:15:27 +02:00
|
|
|
"version" )
|
2017-07-13 17:08:36 +02:00
|
|
|
fflash_version
|
2017-07-13 11:32:01 +02:00
|
|
|
fscript_version ;; # version plugin en ligne & installée
|
2017-06-21 20:15:27 +02:00
|
|
|
"sysremove" )
|
2017-07-13 11:32:01 +02:00
|
|
|
fscript_remove ;; # désinstallation du script
|
2017-06-21 20:15:27 +02:00
|
|
|
"upgrade" )
|
2017-07-16 19:09:17 +02:00
|
|
|
opType="upgrade"
|
2017-07-13 11:32:01 +02:00
|
|
|
fscript_version
|
|
|
|
fscript_dl
|
2017-07-13 17:08:36 +02:00
|
|
|
fflash_version
|
|
|
|
fflash_upgrade ;; # upgrade plugin et script si MAJs possibles
|
|
|
|
"manuel" )
|
|
|
|
fflash_manuelInstall "$2" ;; # install manuelle d'un chargement
|
2017-06-21 20:15:27 +02:00
|
|
|
* )
|
2017-07-17 13:38:04 +02:00
|
|
|
fflash_help
|
|
|
|
fflash_avert ;; # affichage help par défaut
|
2017-06-21 20:15:27 +02:00
|
|
|
esac
|
2017-06-10 21:16:48 +02:00
|
|
|
|
2017-06-06 02:43:07 +02:00
|
|
|
exit 0
|