This commit is contained in:
kyodev 2017-08-16 11:42:46 +02:00
parent 5e0ae4c623
commit 377e65af76
2 changed files with 260 additions and 218 deletions

View File

@ -1,8 +1,8 @@
#!/bin/bash
version=2.9.0
date="30/07/2017"
projet="simpledebian"
version=3.0.0
date="16/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFlashPlayer"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer"
@ -10,12 +10,10 @@ urlNotice="https://kyodev.frama.io/kyopages/scripts/getFlashPlayer/"
user_agent="Mozilla/5.0 (X11; Linux $(uname -m); rv:54.0) Gecko/20100101 Firefox/54.0"
##### license LPRAB/WTFPL
# auteur: simpledebian
# auteur: simpledeb
# contributeurs: kyodev, coyotus, naguam
#####
PATH='/bin:/usr/bin' ; IFS=' '
f__affichage(){
# définition couleurs
YELLOW="$(printf "\033[0;33m")" # ?
@ -37,21 +35,26 @@ EOF
echo -e "$YELLOW pour Firefox, version $version - $date$COLOR\n"
}
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome, xfce. manque KDE
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
# USER_INSTALL=user script
f__user(){
[ "$USER_INSTALL" ] && user_="$USER_INSTALL" # user_ via variable en environnement
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
[ "$SUDO_UID" ] && user_id="$SUDO_UID" # sudo-gnome
echo "$XAUTHORITY" | grep -Eo '[0-9]+' && user_id="$(echo $XAUTHORITY | grep -Eo '[0-9]+')" || \
user_id="$(echo $XDG_RUNTIME_DIR | grep -Eo '[0-9]+')"
[ "$user_id" ] && user_="$(grep $user_id /etc/passwd | cut -d ":" -f 1 )" || \
user_="$(echo $XAUTHORITY | cut -d "/" -f 3)"
fi
[ "$user_" ] && [ -d "/home/$user_" ] && return 0 || echo " répertoire '/home/$user_' INEXISTANT"
f__error " user indéterminé, lancer le script avec:\n USER_INSTALL=user $0" \
"merci contacter $projet $contact pour corriger ça"
# test validité archive, $1 fichier (gzip), return 1 si invalide
f__archive_test(){
file -b "$1" | grep -q 'gzip compressed data' || return 1
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin, si $1=raw, pas d'espace en début de ligne, pas de ligne vide à la fin
f__info() {
if [ "$1" == "raw" ]; then depart=2;
else local espace=" "; local depart=1; fi
for (( i=$depart ; i<=$# ; i++ )); do echo -e "$espace$BLUE${!i}"; done
[ "$1" == raw ] && printf "" || echo "$COLOR"
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
@ -65,35 +68,56 @@ f__log(){
fi
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
}
#test dépendances (commandes disponibles), $1 liste commandes
f__requis(){
for i in $@; do
if [ ! "$(which $i)" ]; then
local testDepends="ko"
f__info "$RED vous devez avoir la commande $i pour exploiter ce script"
# test dépendances/paquets, $1 liste commandes, $2=debOnly et si paquet présent: return 1 $debOnlyPackages
# si manquant avertissement des commandes manquantes
# si manquant et debian, proposition paquet à installer (syntaxe appel: commande>paquet, ex: killall>psmisc)
f__requis(){ # v16/08/2017
local dependsMissing packagesMissing
for i in $1; do
local command=$(cut -d '>' -f 1 <<< $i)
local package=$(cut -d '>' -f 2 <<< $i)
if [ "$2" == "debOnly" ] && [ "$(which dpkg)" ]; then # package only et debian
LC_ALL=C dpkg --get-selections | grep '[[:space:]]install' | grep -q "^$package[[:space:]]" && \
debOnlyPackages+="$package "
fi
if [ -z "$(which $command)" ]; then
dependsMissing+="$command "
packagesMissing+="$package "
fi
done
[ -z "$testDepends" ] || f__error "Paquets manquants" " Contacter administrateur pour disposer de ces commandes"
[ "$debOnlyPackages" ] && return 1 || return 0
if [ "$dependsMissing" ]; then
if [ -e /etc/debian_version ]; then f__error "paquet(s) manquant(s): " " $dependsMissing" \
" vous devriez exécuter:$GREEN apt install $packagesMissing"
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi
fi
}
# root? return 0 si root else 1
f__root(){
if [ $EUID == 0 ]; then return 0; else return 1; fi
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome, xfce. manque KDE
# return 1 sur echec ident user, return 2 sur absence home
# gestion variable environnement user avec: USER_INSTALL=user script
f__user(){ # v15/08/2017-4
local user_id
if [ "$USER_INSTALL" ]; then user_="$USER_INSTALL"; fi # user_ via variable environnement
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
if [ "$SUDO_UID" ]; then user_id="$SUDO_UID"; fi # sudo
user_id=$(grep -qEo '[0-9]+' <<< "$XAUTHORITY") || user_id=$(grep -qEo '[0-9]+' <<< $XDG_RUNTIME_DIR)
if [ "$user_id" ]; then user_=$(grep $user_id /etc/passwd | cut -d ":" -f 1 )
else user_=$(echo $XAUTHORITY | cut -d "/" -f 3); fi
if [ -z "$user_" ] && [ "$LOGNAME" ] ; then user_=$(grep -v 'root' <<< $LOGNAME)
elif [ -z "$user_" ] && [ $(grep -v 'root' <<< $HOME) ]; then user_=$(cut -sd / -f 3 <<< $HOME)
elif [ -z "$user_" ]; then user_=$(grep -v 'root' <<< $(who | head -n1 | cut -d " " -f1))
elif [ -z "$user_" ] && [ $(grep -v 'not') <<< $(LC_ALL=C tty) ]; then user_=$(stat -c %U $(tty)); fi
fi
if [ -z "$user_" ]; then
echo -e "user indéterminé, pour contourner, lancer le script avec:\n USER_INSTALL=user $0 n" \
"merci contacter $projet $contact pour corriger ça"
return 1
fi
if [ ! -d "/home/$user_" ]; then
echo -e "répertoire '/home/$user_' INEXISTANT"
return 2
fi
}
# test wget, $1 url à tester, sortie script sur erreur
@ -103,57 +127,35 @@ f__wget_test(){
f__error "Erreur wget" " réessayer et si persistance, contacter $projet $contact" " en indiquant les messages précédents."
}
# test validité archive, $1 fichier (gzip), return 1 si invalide
f__archive_test(){
file -b "$1" | grep -q 'gzip compressed data' || return 1
}
# install du script dans le système
fscript_install(){
f__root || f__error "vous devez être ROOT pour installer ce script dans le système"
# si debian on vire 'flashplugin-nonfree' si installé
if [ "$(which dpkg)" ]; then
dpkg --get-selections | grep '[[:space:]]install' | grep -q '^flashplugin-nonfree[[:space:]]' \
&& apt-get purge flashplugin-nonfree
fi
# install /opt
mkdir -p /opt/bin/
ln -s "/opt/bin/$script" "/usr/bin/$script" &>/dev/null
cp -d "$(basename $0)" "/opt/bin/$script"
chmod a+rwx "/opt/bin/$script"
chown "$user_": "/opt/bin/$script"
# cron/anacron install
fscript_cronAnacron install
# création fichier log
touch "$fileLogs"
chmod a+rwx "$fileLogs"
chown "$user_": "$fileLogs"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
f__info "$GREEN$script installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
f__log "$script $version installé dans le système"
exit 0
}
# suppression du script dans le système
fscript_remove(){
f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
unlink /usr/local/bin/"$script" &>/dev/null # ancienne localisation
# cron/anacron remove
fscript_cronAnacron remove
f__info "$GREEN$script supprimé du système."
f__log "$script $version supprimé du système"
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko,
fscript_get_version(){
versionScript="$(wget -q --tries=2 --timeout=15 --user-agent="$user_agent" -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
if [ "$version" != "$versionScript" ]; then
f__info "version script en ligne: $versionScript, mise à jour possible"
script_aJour="ko"
else script_aJour="ok"; fi
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){
rm "/home/$user_/.mozilla/plugins/libflashplayer.anacrontab" &>/dev/null # ancienne localisation éventuelle, spécifique getFlash
rm "/home/$user_/.config/anacron/spool/getFP"* &>/dev/null # ancien job, spécifique getFlash
sed -i "/libflashplayer.anacrontab/d" /etc/crontab # ancienne localisation anacrontab
local dirAnacron="/home/$user_/.config/anacron"
local dirSpool="$dirAnacron/spool"
local fileAnacron="$dirAnacron/$script.anacrontab"
sed -i "/$script.anacrontab/d" /etc/crontab
case "$1" in
install )
mkdir -p "$dirAnacron"
# table anacron
echo "7 01 $script nice /opt/bin/$script --upgrade" > "$fileAnacron"
## test: anacron journalier: echo "1 01 ""$script""test nice /opt/bin/$script --upgrade" >> "$fileAnacron"
# création spool anacron utilisateur
mkdir -p "$dirSpool"
chown -R "$user_": "$dirAnacron" "$dirSpool"
# crontab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
;;
remove )
rm "$dirSpool/$script"* &>/dev/null
rm "$fileAnacron" &>/dev/null
rmdir "$dirSpool" "$dirAnacron" &>/dev/null
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
;;
esac
}
# mise à jour script si dispo
@ -161,62 +163,66 @@ fscript_dl(){
if [ "$script_aJour" == "ok" ]; then return 0; fi
local dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp"
wget -q --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript"
opType="upgrade"
wget -q --show-progress --tries=2 --timeout=15 -O "$dirTemp$script" "$urlScript"
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
chmod a+rwx "$dirTemp$script"
chmod 755 "$dirTemp$script"
chown "$user_": "$dirTemp$script"
cp -d "$dirTemp$script" /opt/bin/"$script"
rm -rf "$dirTemp"
f__info "\n $script mis à jour en version $versionScript"
f__log "$script mis à jour en version $versionScript"
$0 upgrade #script mis à jour, on relance le script en upgrade pour le plugin
$0 upgrade # spécifique getFlash, script mis à jour, on relance le script en upgrade pour le plugin
exit 0
}
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){
case "$1" in
install )
if [ ! -e "$fileAnacron" ]; then
# création répertoire plugin/
mkdir -p "$dirInstall"
chown "$user_": "$dirInstall"
# table anacron
echo "7 15 getFP nice /opt/bin/$script upgrade &>/dev/null" > "$fileAnacron"
## test: anacron journalier: echo "1 05 getFPtest nice /opt/bin/$script upgrade &>/dev/null" >> "$fileAnacron"
chown "$user_": "$fileAnacron"
# création spool anacron utilisateur
mkdir -p "/home/$user_/.config/anacron/spool"
chown "$user_": "/home/$user_/.config/anacron/spool"
# cron tab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S /home/$user_/.config/anacron/spool" >> /etc/crontab
fi
;;
remove )
rm "/home/$user_/.config/anacron/spool/getFP"* &>/dev/null
sed -i "/^\@hourly.*libflashplayer.anacrontab.*$/d" /etc/crontab
rm "$fileAnacron"
;;
esac
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko,
fscript_get_version(){
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
if [ "$versionScript" ]; then
if [ "$version" != "$versionScript" ]; then
f__info "version script en ligne: $versionScript, mise à jour possible"
script_aJour="ko"
else
f__info "version script en ligne: $versionScript"
script_aJour="ok"
fi
else f__info "version script en ligne non accessible"; fi
}
# version Flash en ligne & installée, si $1="quiet" pas d'affichage, $verFlash=x.y|na, $plugin_aJour=ok|ko
fflash_get_version(){
local verInstall="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
plugin_aJour="ok"
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"
if [ "$?" != "0" ]; then f__wget_test "$urlOnline"; fi # sortie script si erreur wget
if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible";
else [ "$1" == "quiet" ] || f__info "version FlashPlayer en ligne: $verFlash"; fi
if [ -z "$verInstall" ]; then
f__info "FlashPlayer non installé"
elif [ "$verInstall" == "$verFlash" ]; then
[ "$1" == "quiet" ] || f__info "FlashPlayer à jour"
else
plugin_aJour="ko"
[ "$1" == "quiet" ] || f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
fi
# install du script dans le système
fscript_install(){
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer ce script dans le système"
[ -e "/var/log/sdeb_getFlash.log" ] && mv "/var/log/sdeb_getFlash.log" "$fileLogs" # changement ancien logs
f__requis "flashplugin-nonfree" "debOnly" || apt-get purge flashplugin-nonfree
# install /opt
mkdir -p /opt/bin/
cp -d "$(basename $0)" "/opt/bin/$script"
ln -s "/opt/bin/$script" "/usr/bin/$script" &>/dev/null
chmod 755 "/opt/bin/$script"
# cron/anacron install
fscript_cronAnacron "install"
# création fichier log
touch "$fileLogs"
chmod 644 "$fileLogs"
chown "$user_": "$fileLogs" "/opt/bin/$script"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
f__info "$GREEN$script $version installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
f__log "$script $version installé dans le système"
exit 0
}
# suppression du script dans le système
fscript_remove(){
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
unlink /usr/local/bin/"$script" &>/dev/null # ancienne localisation
# cron/anacron remove
fscript_cronAnacron "remove"
f__info "$GREEN$script $version supprimé du système."
f__log "$script $version supprimé du système"
}
# pas beau ce soft :(
@ -233,51 +239,57 @@ EOF
echo -e " voir:$GREEN https://developer.mozilla.org/fr/docs/Plugins/Roadmap$COLOR\n"
}
# version Flash en ligne & installée, si $1="quiet" pas d'affichage, $verFlash=x.y, $plugin_aJour=ko
fflash_get_version(){
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"
if [ "$?" != "0" ]; then f__wget_test "$urlOnline"; fi # sortie script si erreur wget
if [ $verFlash == "na" ]; then f__error "version FlashPlayer non accessible";
else [ "$1" == "quiet" ] || f__info "version FlashPlayer en ligne: $verFlash"; fi
if [ ! -e "$dirInstall/libflashplayer.so" ]; then
f__info "FlashPlayer non installé"
return 0
fi
# détection version du plugin installé
local verInstall="$(strings $dirInstall/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"
if [ "$verInstall" == "$verFlash" ]; then
[ "$1" == "quiet" ] || f__info "FlashPlayer à jour"
else
plugin_aJour="ko"
[ "$1" == "quiet" ] || f__info "version FlashPlayer installée: $verInstall, mise à jour possible"
fi
}
# affichage help
fflash_help(){
printf "$BLUE"
cat << 'EOF'
-----------------------------------------------------------------------
./getFlashPlayer : installation du script dans le système, en ROOT
getFlashPlayer install : téléchargement & installation & update Flash
getFlashPlayer install : téléchargement & installation de FlashPlashplayer
getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : version en ligne de FlashPlayer
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire
getFlashPlayer upgrade : mise à jour plugin si disponible
----
getFlashPlayer manuel fichier.tar.gz : installation d'une archive manuellement
----
getFlashPlayer sysremove : désinstall du script du système, en ROOT
./getFlashPlayer : installation du script dans le système
getFlashPlayer -h, --help : affichage aide
getFlashPlayer -r, --remove, sysremove : désinstallation du script du système
getFlashPlayer -u, --upgrade : mise à jour script & plugin, cron hebdomadaire
getFlashPlayer -v, --version : version du script
EOF
printf "$COLOR"
cat << 'EOF'
-----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour
l'installation et la suppression 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.
Il désinstallera le paquet flashplugin-nonfree si présent (debian).
SEUL le plugin sera installé comme plugin Firefox.
-----------------------------------------------------------------------
EOF
echo -e "plus d'infos:$GREEN https://kyodev.frama.io/kyopages/scripts/getFlashPlayer/$COLOR\n"
}
# calcul url téléchargement plugin, assigne $recup_url,
fflash_recup_url_v1(){
local recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/"
if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then local recup2='i386';
elif [ "$(uname -m)" == "x86_64" ] || [ "$(uname -m)" == "amd64" ]; then local recup2='x86_64';
else f__error "architecture non reconnue" ; fi
recup_url="$recup1$verFlash/flash_player_npapi_linux.$recup2.tar.gz"
}
# installation du plugin chargé manuellement, $1
fflash_install_manuel(){
if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi
f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide"
f__info "installation manuelle $1"
fflash_install "manuel" "$1"
}
# install plugin dans config user mozilla, $1 manuel (install manuelle), $2 script à installer si install manuelle
fflash_install(){
[ "$opType" == "upgrade" ] || fflash_avertissement
@ -288,10 +300,9 @@ fflash_install(){
else
local file="flash_player_npapi_linux.$(getconf LONG_BIT).tar.gz"
local dirTemp="/tmp/$script-$RANDOM/"
if [ $verFlash == "na" ]; then fflash_get_version "quiet"; fi
if [ -z $verFlash ]; then fflash_get_version "quiet"; fi
f__info "installation FlashPlayer, version $verFlash"
mkdir -p "$dirTemp"
# détection/chargement/test archive plugin flashplayer
fflash_recup_url_v1
wget -q -c --show-progress --tries=1 --timeout=15 --user-agent="$user_agent" --referer="$urlOnline" -O "$dirTemp$file" "$recup_url"
@ -301,21 +312,31 @@ fflash_install(){
# décompression archive téléchargée dans dossier de travail
if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi
if [ "$1" == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi
# copie de la bibliothèque flash dans plugins/ user mozilla, effacement répertoire temporaire
mkdir -p "$dirInstall"
cp -f "$dirTemp"libflashplayer.so "$dirInstall/"
rm -Rf "$dirTemp"
# droits user si jamais installation par root
chown -R "$user_": "$dirInstall"
f__info "\n FlashPlayer $verFlash installé pour $user_" "\tPour tester: http://get.adobe.com/flashplayer/about/"
f__log "FlashPlayer $verFlash installé pour $user_"
}
# test et mise à jour plugin si plugin outdated
fflash_upgrade(){
if [ "$plugin_aJour" == "ko" ]; then fflash_install; fi
# installation du plugin chargé manuellement, $1
fflash_install_manuel(){
if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi
f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide"
f__info "installation manuelle $1"
fflash_install "manuel" "$1"
}
# calcul url téléchargement plugin, assigne $recup_url,
fflash_recup_url_v1(){
local recup1="https://fpdownload.adobe.com/get/flashplayer/pdc/"
if [ "$(uname -m)" == "i686" ] || [ "$(uname -m)" == "i386" ]; then local recup2='i386';
elif [ "$(uname -m)" == "x86_64" ] || [ "$(uname -m)" == "amd64" ]; then local recup2='x86_64';
else f__error "architecture non reconnue" ; fi
recup_url="$recup1$verFlash/flash_player_npapi_linux.$recup2.tar.gz"
}
# suppression du plugin
@ -329,51 +350,58 @@ fflash_remove(){
f__log "FlashPlayer $verInstall désinstallé pour $user_"
}
#initialisation
f__affichage
f__user
verFlash="na"
f__requis "wget file tar"
fileLogs="/var/log/sdeb_getFlash.log"
dirInstall="/home/$user_/.mozilla/plugins"
fileAnacron="$dirInstall/libflashplayer.anacrontab"
urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ -e "$dirInstall/libflashplayer.so" ] && flash_installed="ok" || flash_installed="ko"
# installation du script si appel pas fait depuis le système
dirname "$0" | grep -q 'bin' || fscript_install
# détection droits inappropriés sur le script, cas de figure sur version de dev
[ "$1" != "sysremove" ] && [ -e "/opt/bin/$script" ] && ls -l "/opt/bin/$script" | grep -q 'root' && f__error "bug sécu 01" \
"veuillez désinstaller le script et le réinstaller" "voir: $urlNotice#supprimer-le-script"
# détection ancien système de logs via syslog
[ -w "$fileLogs" ] || f__info "pour bénéficier de la nouvelle version des logs, vous devriez réinstaller manuellement $script" \
"voir https://kyodev.frama.io/kyopages/scripts/getFlashPlayer/#installation-rapide-du-script"
case "$1" in
install )
fflash_install;; # installation plugin
remove )
fflash_remove ;; # désinstallation plugin
--version | -version ) ;; # affiche version script
version )
fflash_get_version
fscript_get_version ;; # version plugin en ligne & installée
sysremove )
fscript_remove ;; # désinstallation du script
upgrade )
# test et mise à jour plugin si plugin outdated
fflash_upgrade(){
if [ "$plugin_aJour" == "ko" ]; then
opType="upgrade"
f__log="tests mise à jour"
fscript_get_version
fscript_dl
[ "$flash_installed" == "ko" ] && exit 0
fflash_get_version
fflash_upgrade ;; # upgrade script et plugin si installé
manuel )
fflash_install_manuel "$2" ;; # installation manuelle d'un chargement
* )
fflash_help
fflash_avertissement ;; # affichage help par défaut
esac
fflash_install
fi
}
#initialisation
PATH='/usr/sbin:/usr/bin:/sbin:/bin' ; IFS=' '
f__affichage
f__user || f__error "échec détection user"
f__requis "wget file tar"
fileLogs="/var/log/sdeb_$script.log"
dirInstall="/home/$user_/.mozilla/plugins"
urlOnline="https://get.adobe.com/fr/flashplayer/" # test version & referer
[ "$(stat -c %G /opt/bin/$script)" == "root" ] && problemDetected+="-1" # droits inappropriés sur le script, version de dev
options="$@"
if [ "$(dirname $0)" == "." ]; then unset options
elif ! grep -qE '\-u|\-\-upgrade' <<< "$options"; then
if [ ! -w "$fileLogs" ] && [ -e "$dirInstall/libflashplayer.so" ] ; then problemDetected+="-2"; fi # ancien système de logs via syslog
fi
[ "$problemDetected" ] && f__info "$RED""l'installation du script est obsolète ($problemDetected)" \
" veuillez réinstaller le script manuellement" "$GREEN voir $urlNotice""#installation-rapide-du-script"
for i in "$options"; do
case "$i" in
install ) fflash_install ;; # installation plugin
remove ) fflash_remove ;; # désinstallation plugin
version ) fflash_get_version ;; # version plugin en ligne & installée
upgrade ) fflash_upgrade ;; # upgrade plugin si installé
manuel ) fflash_install_manuel "$2" ;; # installation manuelle d'un chargement
"" ) if ! dirname "$0" | grep -q 'bin' ; then # installation du script dans le système
fscript_install; fi
;;
-r | --remove | sysremove ) fscript_remove ;; # désinstallation du script
-u | --upgrade ) # upgrade script et plugin
fscript_get_version
fscript_dl
fflash_upgrade
;;
--version | -v | --versions ) fscript_get_version ;; # affiche version script
--help | -h | * ) # affichage help
fflash_help
fflash_avertissement
;;
esac
done
exit 0
wget -O getFlashPlayer https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer
chmod +x getFlashPlayer && ./getFlashPlayer

View File

@ -1,5 +1,19 @@
# changelog getFlashPlayer
## todo
## 3.0.0 16/08/2017
* changement pour homogénéisation des options d'appel du script
* révision et homogénéisation des fonctions de script , localisation anacrontab
**réinstallation manuelle nécessaire (root)**
* révision chmod
* lancement cron restart (bien que inutile?) à l'installation et à la suppression du script
* fix bug critique: maj non fonctionnelle avec fonction f__user récente.. :(
* révision f__user
* révision f__requis
## 2.9.0 31/07/2017
* fix bug: détection user sous gnome