getFirefox 4.14.0

This commit is contained in:
kyodev 2018-01-26 17:05:36 +01:00
parent 4be6b457b7
commit 12b7448675
2 changed files with 55 additions and 43 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=4.13.1
date="25/01/2018"
version=4.14.0
date="26/01/2018"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getFirefox"
@ -97,43 +97,50 @@ f__log(){ # 4/12/2017
fi
}
# test dépendances/paquets, $1 liste commande[>paquet] (ex: killall>psmisc)
# si manque, return 1 & info commandes manquantes, si debian proposition paquet à installer
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyAbsent ( $1=liste paquets )
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresent ( $1=liste paquets )
# attention priorité $debOnlyAbsent sur $debOnlyPresent
f__requis(){ # 4/12/2017
local dependsMissing packagesMissing command package ireq compteur pluriel
# 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(){ # 26/01/2018
local ENV_DEBIAN ireq table package commands command commandsMissing packagesMissing
unset debOnlyAbsent debOnlyPresent
for ireq in $1; do
command="$(cut -d '>' -f 1 <<< $ireq)"
package="$(cut -d '>' -f 2 <<< $ireq)"
if [ "$2" == "debOnly" ]; then
if type -p "dpkg" &>/dev/null ; then # package only et debian
LC_ALL=C dpkg --get-selections | grep -qE "^$package[[:space:]]+install" \
&& debOnlyPresent+="$package " || debOnlyAbsent+="$package "
type -p "dpkg" &>/dev/null && ENV_DEBIAN="oui" # debian
type -t f__info &>/dev/null && c_echo="f__info" || c_echo="echo -e" # f__info existe? sinon echo
for ireq in $1; do # pour tous les composants de la liste $1
table=( ${ireq//>/ } ) # séparation sur >, split avec double bashisme, mais évite manip $IFS
commands=( ${table[0]//|/ } ) # séparation sur |
if [ ${table[1]} ]; then
package=${table[1]}
else
package="$commands" # pas de oackages dans les options, donc idem commands[0]
fi
for command in ${commands[@]}; do # pour toutes les commandes
if type -p "$command" &>/dev/null ; then
unset commandsMissing packagesMissing
break
else # inexistant
commandsMissing+="$command "
packagesMissing+="$package "
fi
elif ! type -p "$command" &>/dev/null ; then
dependsMissing+="$command "
packagesMissing+="$package "
fi
done
done
[ "$debOnlyAbsent" ] && debOnlyAbsent="$(xargs <<< $debOnlyAbsent)" # trim début & fin
[ "$debOnlyPresent" ] && debOnlyPresent="$(xargs <<< $debOnlyPresent)" # trim début & fin
[ "$debOnlyAbsent" ] && return 1
[ "$debOnlyPresent" ] && return 0
if [ "$dependsMissing" ]; then
compteur="$(wc -w <<< $dependsMissing)"
[ "$compteur" -gt "1" ] && pluriel="s" || unset pluriel
if [ -e /etc/debian_version ]; then
f__info "$RED""erreur critique: $compteur paquet"$pluriel" manquant"$pluriel": $STD$BOLD$dependsMissing" \
"\n vous devriez exécuter:$GREEN apt install $packagesMissing"
else
f__info "$RED""erreur critique: $compteur commande"$pluriel" manquante"$pluriel": $STD$BOLD$dependsMissing"
fi
return 1
# dédoublonnage & triage
commandsMissing=$( echo $commandsMissing | tr ' ' '\n' | sort --unique | tr '\n' ' ' )
packagesMissing=$( echo $packagesMissing | tr ' ' '\n' | sort --unique | tr '\n' ' ' )
# suppression éventuel espace final
commandsMissing=${commandsMissing% }
packagesMissing=${packagesMissing% }
# affichage final
if [ "$commandsMissing" ] && [ "$ENV_DEBIAN" ]; then
$c_echo "$RED""erreur critique, manquant: $STD$BOLD$commandsMissing" \
"vous devriez exécuter:$GREEN apt install $packagesMissing"
elif [ "$commandsMissing" ]; then
$c_echo "$RED""erreur critique, manquant: $STD$BOLD$commandsMissing"
fi
[ "$commandsMissing" ] && return 1 || return 0
}
# $@=cmd à lancer en root avec su ou sudo. si $@ contient :x: x=nombre de tentatives, sinon 2 tentatives par défaut
@ -742,10 +749,10 @@ ffx_remove(){ # 14/01/2018
}
# tache upgrade dans anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove
fscript_cronAnacron(){ # 29/12/2017
fscript_cronAnacron(){ # 26/01/2018
local dirAnacron dirSpool fileAnacron
[ "$( type -t fscript_cronAnacron_special )" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel
type -t fscript_cronAnacron_special &>/dev/null && fscript_cronAnacron_special # test, si fonction spécifique, appel
dirAnacron="/home/$fu_user/.config/anacron"
dirSpool="$dirAnacron/spool"
fileAnacron="$dirAnacron/$script.anacrontab"
@ -800,14 +807,14 @@ fscript_get_version(){ # 24/01/2018
}
# installation du script dans le système
fscript_install(){ # 15/01/2018
fscript_install(){ # 26/01/2018
if grep -q 'bin' <<< "$( dirname $0 )" ; then
f__info "$RED""l'installation dans le système doit se faire depuis un script local $GREEN(./$script -i )"
return 1
fi
[ "$( type -t fscript_install_special )" ] && fscript_install_special # test, si fonction spécifique, appel
type -t fscript_install_special &>/dev/null && fscript_install_special # test, si fonction spécifique, appel
f__requis "wget anacron cron" || exit 1
# install /opt
mkdir -p /opt/bin/
@ -826,7 +833,7 @@ fscript_install(){ # 15/01/2018
}
# suppression du script dans le système
fscript_remove(){ # 15/01/2018
fscript_remove(){ # 26/01/2018
if ! grep -q 'bin' <<< "$( dirname $0 )" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -r)"
@ -837,7 +844,7 @@ fscript_remove(){ # 15/01/2018
return 1
fi
[ "$( type -t fscript_remove_special )" ] && fscript_remove_special # test, si fonction spécifique, appel
type -t fscript_remove_special &>/dev/null && fscript_remove_special # test, si fonction spécifique, appel
# suppression de /opt lien /usr/bin
rm -f "$script_install"
unlink "/usr/bin/$script" &>/dev/null
@ -848,10 +855,10 @@ fscript_remove(){ # 15/01/2018
}
# mise à jour script, [$1 != "" si upgrade en place, $1 dans message info]
fscript_update(){ # 24/01/2018
fscript_update(){ # 26/01/2018
local dirTemp="/tmp/$script-maj" upgradeEnPlace="$1"
[ "$(type -t fscript_update_special)" ] && fscript_update_special # test, si fonction spécifique, appel
type -t fscript_update_special &>/dev/null && fscript_update_special # test, si fonction spécifique, appel
if [ -z "$upgradeEnPlace" ] && ! grep -q 'bin' <<< "$( dirname $0 )" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)"
return 1

View File

@ -7,6 +7,11 @@ todo
* révision extraction n° version
## getFirefox 4.14.0 26/01/2018
* révision: mineur, fscript_cronAnacron fscript_install fscript_remove fscript_update
* révision: f__requis
## getFirefox 4.13.1 25/01/2018
* révision: f_help, f_affichage