From ff159a2de3812e3231fad692eeed6d208da78089 Mon Sep 17 00:00:00 2001 From: kyodev Date: Tue, 12 Jun 2018 11:51:31 +0200 Subject: [PATCH] maj --- docs/scripts/getFlashPlayer.md | 2 +- scripts/getFlashPlayer | 67 +++++++++++----------------------- 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/docs/scripts/getFlashPlayer.md b/docs/scripts/getFlashPlayer.md index e8646a6..45bb0c2 100644 --- a/docs/scripts/getFlashPlayer.md +++ b/docs/scripts/getFlashPlayer.md @@ -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) diff --git a/scripts/getFlashPlayer b/scripts/getFlashPlayer index 8cf2750..8a87dfb 100755 --- a/scripts/getFlashPlayer +++ b/scripts/getFlashPlayer @@ -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