mirror of https://framagit.org/kyodev/kyopages.git
getThunderbird 2.3.0
This commit is contained in:
parent
3df0c1f94e
commit
4168336d7f
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
version=2.2.0
|
||||
date="12/01/2018"
|
||||
version=2.3.0
|
||||
date="16/01/2018"
|
||||
projet="simpledeb"
|
||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||
script="getThunderbird"
|
||||
|
@ -136,9 +136,10 @@ f__requis(){ # 4/12/2017
|
|||
fi
|
||||
}
|
||||
|
||||
# $1=cmd si $2: nb de tentatives pour s'identifier, sinon 2 tentatives par défaut, suppose bash existant
|
||||
f__sudo(){ # 23/12/2017
|
||||
local nb=2 sudo isudo toBash
|
||||
# $@=cmd à lancer en root avec su ou sudo. si $@ contient :x: x=nombre de tentatives, sinon 2 tentatives par défaut
|
||||
# si bash inexistant, return 2
|
||||
f__sudo(){ # 14/01/2018
|
||||
local nb sudo isudo toBash options
|
||||
|
||||
type -p bash &>/dev/null && toBash=$( type -p bash ) || return 2
|
||||
# sudo --shell bash équivalent su ?
|
||||
|
@ -147,9 +148,16 @@ f__sudo(){ # 23/12/2017
|
|||
else
|
||||
sudo="su --shell $toBash --preserve-environment -c "
|
||||
fi
|
||||
[ "$2" ] && nb=$(( "$2" ))
|
||||
if [[ "$@" =~ :??: ]]; then
|
||||
nb="$@"
|
||||
nb=${nb#*:}
|
||||
nb=${nb%:*}
|
||||
else
|
||||
nb=2
|
||||
fi
|
||||
options=${@//:$nb:/ }
|
||||
for (( isudo=1 ; isudo<="$nb" ; isudo++ )); do
|
||||
$sudo " $1"
|
||||
$sudo " $options"
|
||||
[ "$?" == 0 ] && break
|
||||
[ "$isudo" == "$nb" ] && return 1
|
||||
done
|
||||
|
@ -204,7 +212,7 @@ f__user(){ # 3/12/2017
|
|||
# si $2=print affiche url testée & entêtes http & location, return 0
|
||||
# si $2=loc affiche seulement location, return 0
|
||||
# si $2=test return 0 si ok, return 1 si KO
|
||||
f__wget_test(){ # 24/12/2017
|
||||
f__wget_test(){ # 16/01/2018
|
||||
local file_test_wget="/tmp/testWget-$script" retourWget retourHttp location
|
||||
|
||||
wget -Sq --timeout=5 --tries=2 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
|
||||
|
@ -227,15 +235,14 @@ f__wget_test(){ # 24/12/2017
|
|||
fi
|
||||
if [ "$2" == "print" ]; then
|
||||
if [ "$retourWget" != "0" ]; then
|
||||
echo "erreur wget: erreur $RED$retourWget"
|
||||
echo -e "$BLUE $1$STD\t$RED $retourHttp"
|
||||
echo " erreur wget: erreur $RED$retourWget"
|
||||
echo -e "$BLUE $1$STD\t$RED $retourHttp$STD"
|
||||
else
|
||||
echo -e "$BLUE $1$STD\t$GREEN $retourHttp"
|
||||
echo -e "$BLUE $1$STD\t$GREEN $retourHttp$STD"
|
||||
fi
|
||||
echo "$STD"
|
||||
fi
|
||||
if [ "$2" == "print" ] || [ "$2" == "loc" ]; then
|
||||
[ "$location" ] && echo -n "$YELLOW$location" || echo -n "$YELLOW""no location"
|
||||
[ "$location" ] && echo -n "$YELLOW $location" || echo -n "$YELLOW no location"
|
||||
echo "$STD"
|
||||
rm -f "$file_test_wget"
|
||||
return 0
|
||||
|
@ -269,8 +276,8 @@ EOF
|
|||
}
|
||||
|
||||
# affichage help
|
||||
f_help(){ # 26/12/2017
|
||||
local ih appli="Thunderbird" help=(
|
||||
f_help(){ # 15/01/2018
|
||||
local ih help=(
|
||||
" ----------------------------------------------------------------------"
|
||||
" canaux possibles:$GREEN latest, beta$STD"
|
||||
" <all> = tous les canaux"
|
||||
|
@ -278,10 +285,12 @@ f_help(){ # 26/12/2017
|
|||
" exemple, installation version Release (latest): $BLUE$script i-latest$STD"
|
||||
" "
|
||||
" $BLUE$script i-$STD$GREEN""canal$STD : $RED""i$STD""nstallation de $appli <canal> $RED(root)$STD"
|
||||
" avec option $GREEN--sauve$STD l'archive téléchargée est sauvegardée dans le répertoire courant"
|
||||
" "
|
||||
" $BLUE$script d-$STD$GREEN""canal$STD : copier un profil $RED"".d$STD""efault existant sur <canal>"
|
||||
" $BLUE$script m-$STD$GREEN""canal$STD : installation sur le <canal> d'une archive téléchargée $RED""m$STD""anuellement $RED(root)$STD"
|
||||
" $BLUE$script r-$STD$GREEN""canal$STD : désinstallation ($RED""r$STD""emove) du <canal> $RED(root)$STD"
|
||||
" $BLUE$script ri$STD : $RED""r$STD""éparation$RED i$STD""cône(s) dans le menu"
|
||||
" $BLUE$script u-$STD$GREEN""canal$STD : profil pour l'$RED""u$STD""tilisateur en cours et comme défaut système $RED(root)$STD"
|
||||
" "
|
||||
" $BLUE$script version$STD : versions installées et en ligne"
|
||||
|
@ -311,8 +320,8 @@ f_tb_alertIcedove(){ # 25/12/2017
|
|||
}
|
||||
|
||||
# traitement utilisateur, $1=canal, [$2='menu' si appel indépendant pour reconfiguration]
|
||||
f_tb_config_profil(){ # 27/12/2017
|
||||
local nbProfiles canal="$1" appli="Thunderbird"
|
||||
f_tb_config_profil(){ # 14/01/2018
|
||||
local nbProfiles canal="$1"
|
||||
|
||||
if [ ! -d "$dirInstall$canal" ] && [ "$2" == "menu" ]; then # pas de répertoire programme
|
||||
f__info "$appli $canal n'est pas installé"
|
||||
|
@ -345,15 +354,10 @@ f_tb_config_profil(){ # 27/12/2017
|
|||
}
|
||||
|
||||
# traitement système: lien /usr/bin, default profiles.ini, $1 canal
|
||||
f_tb_config_system(){ # 27/12/2017
|
||||
local canal="$1" appli="Thunderbird"
|
||||
f_tb_config_system(){ # 14/01/2018
|
||||
local canal="$1"
|
||||
local ligne numero marqueur stockage profileIni="$dirProfil/profiles.ini"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour configurer $canal comme défaut dans le système"
|
||||
f__sudo "exec $0 u-$canal"
|
||||
return $?
|
||||
fi
|
||||
if [ ! -d "$dirInstall$canal" ]; then
|
||||
f__info "$appli $canal n'est pas installé"
|
||||
return 1
|
||||
|
@ -372,14 +376,14 @@ f_tb_config_system(){ # 27/12/2017
|
|||
# set default=1 dans profiles.ini
|
||||
while read -r ligne ; do
|
||||
[[ ${ligne} =~ ^\[Profile.*\]$ ]] && numero=${ligne//[\[Profile\]]} # n° profil, pas utilisé
|
||||
[ "$ligne" == "Name=$canal" ] && marqueur="ok" # détection canal recherché, marqueur actif
|
||||
[ "$ligne" == "Default=1" ] && continue # si Default existant, on saute
|
||||
[ "$ligne" == "Name=$canal" ] && marqueur="ok" # détection canal recherché? marqueur actif
|
||||
[[ $ligne == "Default=1" ]] && continue # si Default existant, on saute, la ligne ne fera donc pas partie de $stockage (=effacement)
|
||||
|
||||
if [ "$marqueur" == "ok" ] && [ -z "$ligne" ]; then # marqueur actif, première ligne vide rencontrée
|
||||
ligne+="Default=1"$'\n' # ajout Default=1
|
||||
unset marqueur # effacement marqueur
|
||||
fi
|
||||
stockage+="$ligne"$'\n' # stockage ligne
|
||||
stockage+="$ligne"$'\n' # stockage lignes brutes ou traitées
|
||||
done < "$profileIni"
|
||||
if [ "$marqueur" == "ok" ]; then # marqueur encore actif (dernier profil), read ne permet de choper dernière ligne vide
|
||||
stockage+="Default=1" # ajout Default=1
|
||||
|
@ -429,8 +433,8 @@ f_tb_get_canalBas(){ # 25/12/2017
|
|||
}
|
||||
|
||||
# version en ligne et installée, affichage
|
||||
f_tb_get_versions(){ # 25/12/2017
|
||||
local canal recup_url prefixe verOnline verTbOnline verInstall verTbInstall appli="Thunderbird"
|
||||
f_tb_get_versions(){ # 14/01/2018
|
||||
local canal recup_url prefixe verOnline verTbOnline verInstall verTbInstall
|
||||
|
||||
for canal in latest beta; do
|
||||
# version online
|
||||
|
@ -455,18 +459,9 @@ f_tb_get_versions(){ # 25/12/2017
|
|||
}
|
||||
|
||||
# installation, $1 canal [$2='manuel', $3 archive]
|
||||
f_tb_install(){ # 26/12/2017
|
||||
local versArchive fileTemp prefixe canal="$1" dirTemp="/tmp/$script-install_tb" appli="Thunderbird"
|
||||
f_tb_install(){ # 15/01/2018
|
||||
local versArchive fileTemp prefixe canal="$1" dirTemp="/tmp/$script-install_tb"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour installer $appli $canal dans le système"
|
||||
if [ "$2" == "manuel" ]; then
|
||||
f__sudo "exec $0 m-$1 $3"
|
||||
else
|
||||
f__sudo "exec $0 i-$1"
|
||||
fi
|
||||
return $?
|
||||
fi
|
||||
if [ "$2" == "manuel" ]; then
|
||||
versArchive=$( sed -E 's/.*thunderbird-(.*)\.tar\.bz2.*$/\1/' <<< $(basename $3) )
|
||||
f__info "installation manuelle dans $canal de thunderbird version $versArchive ($3)"
|
||||
|
@ -474,7 +469,7 @@ f_tb_install(){ # 26/12/2017
|
|||
mkdir -p "$dirTemp"
|
||||
else
|
||||
f__info "installation $appli-$canal"
|
||||
fileTemp="$dirTemp/thunderbird-$canal.$fu_archi.tar.bz2"
|
||||
fileTemp="$dirTemp/${appli,,}-$canal.$fu_archi.tar.bz2"
|
||||
# téléchargement & test archive
|
||||
f__info " - téléchargement..."
|
||||
[ "$canal" == "beta" ] && prefixe="$canal-"
|
||||
|
@ -496,6 +491,10 @@ f_tb_install(){ # 26/12/2017
|
|||
mv -f "$dirTemp/thunderbird/"* "$dirInstall$canal/"
|
||||
chown -R "$fu_user:" "$dirInstall$canal/"
|
||||
chmod -R g+wrs,a+r "$dirInstall$canal/"
|
||||
if [ "$dl_to_svg" == "ok" ]; then
|
||||
chown -R "$fu_user:" "$fileTemp"
|
||||
mv "$fileTemp" ./
|
||||
fi
|
||||
rm -rf "$dirTemp/"
|
||||
|
||||
# traitement finaux système
|
||||
|
@ -531,8 +530,10 @@ f_tb_install_manuel(){ # 25/12/2017
|
|||
}
|
||||
|
||||
# création lanceur.desktop, $1=canal à traiter
|
||||
f_tb_lanceur_desktop(){ # 25/12/2017
|
||||
local canal="$1" fileDesktop="/usr/share/applications/thunderbird-$1.desktop" appli="Thunderbird"
|
||||
f_tb_lanceur_desktop(){ # 14/01/2018
|
||||
local canal="$1" fileDesktop="/usr/share/applications/thunderbird-$1.desktop"
|
||||
|
||||
[ -d "$dirInstall$canal" ] || return 0 # pas d'installation? sortie
|
||||
|
||||
echo "[Desktop Entry]" > "$fileDesktop"
|
||||
echo "Name=$appli $canal" >> "$fileDesktop"
|
||||
|
@ -560,14 +561,9 @@ f_tb_lanceur_desktop(){ # 25/12/2017
|
|||
}
|
||||
|
||||
# désinstallation, $1=canal
|
||||
f_tb_remove(){ # 26/12/2017
|
||||
local canal="$1" fileDesktop="/usr/share/applications/thunderbird-$1.desktop" appli="Thunderbird"
|
||||
f_tb_remove(){ # 14/01/2018
|
||||
local canal="$1" fileDesktop="/usr/share/applications/thunderbird-$1.desktop"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour désinstaller $appli $canal"
|
||||
f__sudo "exec $0 r-$canal"
|
||||
return $?
|
||||
fi
|
||||
if [ ! -d "$dirInstall$canal" ]; then
|
||||
f__info "$appli $canal n'est pas installé"
|
||||
return 1
|
||||
|
@ -656,17 +652,12 @@ fscript_get_version(){ # 03/01/2018
|
|||
}
|
||||
|
||||
# installation du script dans le système
|
||||
fscript_install(){ # 27/12/2017
|
||||
fscript_install(){ # 15/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
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour installer ce script dans le système"
|
||||
f__sudo "exec $0 -i"
|
||||
return $?
|
||||
fi
|
||||
|
||||
[ "$( type -t fscript_install_special )" ] && fscript_install_special # test, si fonction spécifique, appel
|
||||
f__requis "wget anacron cron" || exit 1
|
||||
|
@ -687,7 +678,7 @@ fscript_install(){ # 27/12/2017
|
|||
}
|
||||
|
||||
# suppression du script dans le système
|
||||
fscript_remove(){ # 27/12/2017
|
||||
fscript_remove(){ # 15/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)"
|
||||
|
@ -697,11 +688,6 @@ fscript_remove(){ # 27/12/2017
|
|||
f__info "$RED$script n'est pas installé"
|
||||
return 1
|
||||
fi
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour supprimer ce script dans le système"
|
||||
f__sudo "exec $0 -r"
|
||||
return $?
|
||||
fi
|
||||
|
||||
[ "$( type -t fscript_remove_special )" ] && fscript_remove_special # test, si fonction spécifique, appel
|
||||
# suppression de /opt lien /usr/bin
|
||||
|
@ -806,6 +792,7 @@ url_script="https://framagit.org/kyodev/kyopages/raw/master/scripts/getThunderbi
|
|||
url_notice="https://kyodev.frama.io/kyopages/scripts/getThunderbird/"
|
||||
|
||||
# paramètres Thunderbird
|
||||
appli="Thunderbird"
|
||||
dirInstall="/opt/usr/share/thunderbird-"
|
||||
dirProfil="/home/$fu_user/.thunderbird" # emplacement profiles.ini
|
||||
produit_all="latest beta"
|
||||
|
@ -813,49 +800,73 @@ produit_all_inverse="beta latest"
|
|||
|
||||
|
||||
options=$@
|
||||
if [ "$(dirname $0)" == "." ] && [ ! -e "$fileDev" ]; then
|
||||
options="-i" # script install
|
||||
# auto-installation script éventuel, si pas de marqueur $fileDev
|
||||
if [[ $( dirname $0 ) != $( dirname $script_install ) && $( dirname $0 ) != "/usr/bin" && ! -e "$fileDev" ]]; then
|
||||
options="-i" # option installation script
|
||||
fi
|
||||
[ "$options" ] || options="-h" # vide? help
|
||||
|
||||
for j in $options; do
|
||||
for j in $options; do # première passe options
|
||||
case $j in
|
||||
d-latest | d-beta | i-all )
|
||||
-i | --install | -r | --remove | ri | i-* | m-* | r-* | u-* )
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour cette opération"
|
||||
f__sudo "exec $0 $@"
|
||||
exit
|
||||
fi
|
||||
;;&
|
||||
--sauve )
|
||||
dl_to_svg="ok"
|
||||
;;&
|
||||
esac
|
||||
done
|
||||
options=${options//--sauve/ }
|
||||
|
||||
[ "$options" ] || options="-h" # vide? help
|
||||
|
||||
for j in $options; do # deuxième passe options, actions
|
||||
case $j in
|
||||
d-latest | d-beta | d-all )
|
||||
produit=${j#*-}
|
||||
[ "$produit" == "all" ] && produit="$produit_all"
|
||||
for k in $produit; do
|
||||
f_tb_copie_default "$k" # copier un profil default sur un canal
|
||||
f_tb_copie_default "$k" # copier un profil default sur un canal
|
||||
done
|
||||
exit ;;
|
||||
;;
|
||||
i-latest | i-beta | i-all )
|
||||
produit=${j#*-}
|
||||
[ "$produit" == "all" ] && produit="$produit_all"
|
||||
for k in $produit; do
|
||||
f_tb_install "$k" # installation canal
|
||||
f_tb_install "$k" # installation canal
|
||||
done
|
||||
exit ;;
|
||||
;;
|
||||
m-latest | m-beta )
|
||||
produit=${j#*-}
|
||||
f_tb_install_manuel "$produit" "$2" # installation manuelle d'une archive, $2=archive
|
||||
exit ;;
|
||||
r-latest | r-beta | r-all | i-all )
|
||||
f_tb_install_manuel "$produit" "$2" # installation manuelle d'une archive, $2=archive
|
||||
;;
|
||||
r-latest | r-beta | r-all )
|
||||
produit=${j#*-}
|
||||
[ "$produit" == "all" ] && produit="$produit_all"
|
||||
for k in $produit; do
|
||||
f_tb_remove "$k" # remove
|
||||
f_tb_remove "$k" # remove
|
||||
done
|
||||
exit ;;
|
||||
u-latest | u-beta | r-all )
|
||||
;;
|
||||
ri )
|
||||
produit="$produit_all"
|
||||
for k in $produit; do
|
||||
f_tb_lanceur_desktop "$k" # réparation icône de tous les canaux installés
|
||||
done
|
||||
;;
|
||||
u-latest | u-beta | u-all )
|
||||
produit=${j#*-}
|
||||
[ "$produit" == "all" ] && produit="$produit_all"
|
||||
for k in $produit; do
|
||||
f_tb_config_profil "$k" "menu" # configurer un profil thunderbird pour un user
|
||||
f_tb_config_system "$k" # défaut système
|
||||
f_tb_config_profil "$k" "menu" # configurer un canal pour user en cours
|
||||
f_tb_config_system "$k" # défaut système
|
||||
echo
|
||||
done
|
||||
exit ;;
|
||||
;;
|
||||
|
||||
version | versions ) # affiche versions thunderbird en ligne & installées, script
|
||||
version | versions ) # affiche versions thunderbird en ligne & installées, script
|
||||
fscript_get_version
|
||||
f_tb_get_versions
|
||||
;;
|
||||
|
@ -872,10 +883,10 @@ for j in $options; do
|
|||
exit ;;
|
||||
-v | --version ) # version du script, en ligne et exécuté
|
||||
fscript_get_version
|
||||
exit ;;
|
||||
;;
|
||||
-h | --help | * ) # affichage help
|
||||
f_help
|
||||
exit ;;
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
@ -1,6 +1,19 @@
|
|||
# changelog getThunderbird
|
||||
|
||||
|
||||
## getThunderbird 2.3.0 16/01/2018
|
||||
|
||||
* nouveau: cumul options (opérations) possibles (sauf opés scripts)
|
||||
* nouveau: option --sauve pour conserver le téléchargement à l'installation
|
||||
* révision; f__wget_test
|
||||
* révision: f_sudo abandonné dans fscript_install et fscript_remove, au profit appel au traitement général des options
|
||||
* révision: général, invocation f__sudo dans traitement options, plus confortable si su & _all_
|
||||
* révision: f_sudo, format nombre de tentatives et options appel possibles > 1
|
||||
* révision: $appli en global au lieu de local
|
||||
* révision: menu réparation icône pour tous les canaux installés, menu help en conséquence
|
||||
* révision: auto-installation, potentiel bug selon conditions appel
|
||||
* fix: options all
|
||||
|
||||
## getThunderbird 2.2.0 12/01/2018
|
||||
|
||||
* fix: correction commentaire fscript_get_version
|
||||
|
|
Loading…
Reference in New Issue