This commit is contained in:
kyodev 2018-06-12 11:51:31 +02:00
parent 406f1cdaa9
commit ff159a2de3
2 changed files with 23 additions and 46 deletions

View File

@ -1,7 +1,7 @@
# getFlashPlayer
![version: 4.11.0](https://img.shields.io/badge/version-4.11.0-blue.svg?longCache=true&style=for-the-badge)
![version: 4.12.0](https://img.shields.io/badge/version-4.12.0-blue.svg?longCache=true&style=for-the-badge)
![bash langage](https://img.shields.io/badge/bash-4-brightgreen.svg?longCache=true&style=for-the-badge)
![license LPRAB / WTFPL](https://img.shields.io/badge/license-LPRAB%20%2F%20WTFPL-blue.svg?longCache=true&style=for-the-badge)

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=4.11.0
date="11/06/2018"
version=4.12.0
date="12/06/2018"
script="getFlashPlayer"
# contact="IRC ##sdeb@freenode.net ou https://framagit.org/sdeb/getFlashPlayer/issues"
@ -114,7 +114,7 @@ f__log(){ # 05/03/2018
# recherche commandes/paquets, $1 liste: cmd1|cmd2[>paquet] (séparées par espaces) ex: "gawk|mawk>gawk wget"
# si manque, return 1 & affiche commandes manquantes (si debian, ajout proposition paquet à installer)
f__requis(){ # 06/06/2018
f__requis(){ # 11/06/2018
local ENV_DEBIAN c_echo ireq cmds package commands command commandsMissing packagesMissing
if type -p dpkg &>/dev/null ; then
@ -128,7 +128,7 @@ f__requis(){ # 06/06/2018
for ireq in $1; do
IFS='>' read -r cmds package <<< "$ireq" # ex: "awk|gawk>gawk wget file tar killall>psmisc"
mapfile -t -d '|' commands <<< "${cmds}"
[ -z "$package" ] && package=${commands[0]%$'\n'} # pas de packages dans les options, donc = commands[0
[ -z "$package" ] && package=${commands[0]%$'\n'} # pas de packages dans les options, donc = commands[0]
for command in "${commands[@]%$'\n'}"; do
if type -p "$command" &>/dev/null ; then
unset commandsMissing packagesMissing
@ -157,40 +157,14 @@ f__requis(){ # 06/06/2018
[ "$commandsMissing" ] && return 1 || return 0
}
# $@=cmd à lancer en root avec su ou sudo. si $@ contient [':x:'] x=nombre de tentatives, 2 par défaut
# si sudo si possible sera utilisé.
# si su &2 redirigé sur &1
# si bash inexistant, return 2
f__sudo(){ # 10/06/2018
local nb sudo isudo options nbDefault=2
# $@=cmd à lancer en root avec su ou sudo. si sudo possible: prioritairesu su
f__sudo(){ # 11/06/2018
# détermination sudo possible
if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then
sudo="sudo su --preserve-environment -c "
sudo su --preserve-environment -c "$@"
else
sudo="su --preserve-environment -c "
fi
# extraction nb de tentatives éventuel
if [[ "$*" =~ :.{1,2}: ]]; then
nb="$*"
nb=${nb#*:}
nb=${nb%:*}
options=${*//:$nb:/ }
(( nb+1 )) 2>/dev/null || nb="$nbDefault" # test si numérique, sinon,
else
nb="$nbDefault"
options="$*"
fi
# lancement cmds
if [[ "$sudo" =~ ^sudo ]]; then
$sudo "$options"
else
for (( isudo=1 ; isudo<="$nb" ; isudo++ )); do
echo -e "[su] Mot de passe root :"
$sudo "$options" 2>/dev/null && break
[ "$isudo" == "$nb" ] && return 1
done
echo
echo -n "[su] "
su --preserve-environment -c "$@"
fi
}
@ -380,11 +354,15 @@ fflash_get_version(){ # 24/01/2018
}
# install plugin dans config user mozilla, [$1='manuel', $2 archive]
fflash_install(){ # 11/06/2018
fflash_install(){ # 12/06/2018
local versArchive recup_url dirTemp="/tmp/$script"
[[ "$operation" != "upgrade" && -z "$dl_only" ]] && fflash_avertissement
if [ ! -w "dirTemp" ]; then # normalement pas utile...
dirtemp+="-$RANDOM"
[ ! -w "dirTemp" ] && f__error "droits insuffisants, recommencer avec les droits root"
fi
mkdir -p "$dirTemp"
[[ "$operation" != "upgrade" && -z "$dl_only" ]] && fflash_avertissement
if [ "$1" == "manuel" ]; then
versArchive=${2%\.tar*} # flashplayer_28.0.0.137_npapi_linux64.tar.gz
versArchive=${versArchive%_npapi*}
@ -407,10 +385,10 @@ fflash_install(){ # 11/06/2018
f__archive_test "$fileTemp" || f__error " Le fichier $fileTemp n'est pas une archive tar.gz valide"
if [[ "$dl_to_svg" || "$dl_only" ]]; then
chown "$fu_user:" "$fileTemp"
cp "$fileTemp" ./
cp --preserve "$fileTemp" ./
fi
if [ "$dl_only" ]; then
rm "$fileTemp"
rm fr "$fileTemp"
echo
return 0
fi
@ -584,12 +562,11 @@ fscript_remove(){ # 09/06/2018
f__info "log" "$script $version supprimé du système."
}
# si upgrade en place, $1 != "", [$1 message info]
# shellcheck disable=SC2120
# function references arguments, but none are ever passed.
fscript_update(){ # 09/06/2018
local dirTemp="/tmp/$script-maj" upgradeEnPlace="$1"
# $1: update standard $1=std, si update en place $1=message d'info
fscript_update(){ # 11/06/2018
local dirTemp="/tmp/$script-maj" upgradeEnPlace
[ "$1" != 'std' ] && upgradeEnPlace="$1"
type -t fscript_update_special &>/dev/null && fscript_update_special # test, si fonction spécifique, appel
if [ -z "$upgradeEnPlace" ] && ! grep -Eq "$script_install|/usr/bin/$script" <<< "$0"; then
f__info "${RED}cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)"
@ -726,7 +703,7 @@ for i in "${!options[@]}"; do # deuxième passe options, actions
-u | --upgrade ) # upgrade script et plugin
operation="upgrade"
# shellcheck disable=SC2119
fscript_update
fscript_update std # std argument obligatoire pour upgrade normal
$0 upgrade # on relance le script en upgrade pour le plugin
exit ;;
-v | --version ) # version du script, en ligne et en place