This commit is contained in:
kyodev 2017-07-28 12:12:50 +02:00
parent d76ab32f2a
commit 7a5c12c3a7
2 changed files with 40 additions and 13 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=1.3.1
date="27/07/2017"
version=1.4.0
date="28/07/2017"
projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFirefox"
@ -103,15 +103,25 @@ 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 logger --id -p user.err "$script $version: <erreur> $1"; fi
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){
if [ -w "/var/log/sdeb_get.log" ]; then
if [ "$(stat -c %s /var/log/sdeb_get.log)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "/var/log/sdeb_get.log"
else
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "/var/log/sdeb_get.log"
fi
fi
}
# affichage des paramètres en bleu, ligne vide à la fin, syslog $1 si upgrade
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then logger --id -p user.info "$1"; fi
}
# root? return 0 else 1
@ -137,8 +147,13 @@ fscript_install(){
chown "$user_": "/opt/bin/$script"
# cron/anacron install
fscript_cronAnacron "install"
# création fichier log
touch "/var/log/sdeb_get.log"
chmod a+rwx "/var/log/sdeb_get.log"
chown "$user_": "/var/log/sdeb_get.log"
[ -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
}
@ -151,6 +166,7 @@ fscript_remove(){
# 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
@ -164,16 +180,21 @@ fscript_get_version(){
# mise à jour script si dispo
fscript_dl(){
if [ "$script_aJour" == "ok" ]; then return 0; fi
if [ "$script_aJour" == "ok" ]; then
f__log "test maj $script"
return 0
fi
local dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp"
opType="upgrade"
wget -q --show-progress --tries=2 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$script" "$urlScript"
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
chmod a+rwx "$dirTemp$script"
chown "$user_": "$dirTemp$script"
cp -d "$dirTemp$script" /opt/bin/"$script"
rm -rf "$dirTemp"
echo ""; f__info "$script mis à jour en version $versionScript"
f__info "\n$script mis à jour en version $versionScript"
f__log "$script mis à jour en version $versionScript"
exit 0
}
@ -248,7 +269,7 @@ cat << 'EOF'
----------------------------------------------------------------------
Ce script doit être exécuté avec les droits ROOT pour
les installations et les désinstallations.
Il désinstallera le *paquet Debian* firefox-esr si présent.
Si présent, le *paquet Debian* firefox-esr ou firefox devrait être désinstallé
----------------------------------------------------------------------
EOF
echo -e "plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/scripts/getFirefox$COLOR\n"
@ -380,7 +401,10 @@ ffx_profil_user(){
ffx_profilIni_inscription
ffx_lanceur_desktop
ffx_update_alternatives
if [ "$1" == "user" ]; then f__info " - profil <$produit> configuré pour $user_"; fi
if [ "$1" == "user" ]; then
f__info " - profil <$produit> configuré pour $user_"
f__log "profil <$produit> configuré pour $user_"
fi
}
# calcul url téléchargement, assigne $recup_url. fixer url pour beta et nightly dans ffx_get_versionsFF
@ -400,7 +424,6 @@ ffx_recup_url(){
# installation Firefox
ffx_install(){
f__root || f__error "vous devez être ROOT pour installer Firefox"
ffx_godzilla
f__info " - installation Firefox-$produit"
local dirTemp="/tmp/$script-$RANDOM/"
local file="firefox-$produit.$architecture.tar.bz2"
@ -432,12 +455,13 @@ ffx_install(){
# traitement user
ffx_profil_user
f__info "$GREEN""Firefox-$produit installé."
f__log "Firefox-$produit installé"
ffx_godzilla
}
# désinstallation de Firefox
ffx_remove(){
f__root || f__error "vous devez être ROOT pour désinstaller"
ffx_godzilla
killall "/opt/usr/share/firefox-$produit/firefox" &>/dev/null
# si pas de lanceur desktop, on considère que ce canal Firefox n'est pas installé, retour
if [ ! -e "/usr/share/applications/firefox-$produit.desktop" ]; then # si test répertoire, on détecterait pas l'ancien répertoire éventuel
@ -457,13 +481,15 @@ ffx_remove(){
ffx_usr_bin
ffx_update_alternatives
f__info "$GREEN""Firefox-$produit désinstallé."
f__log "Firefox-$produit désinstallé"
ffx_godzilla
}
# initialisation
f__affichage
f__architecture || f__error "Architecture non supportée"
f__user
f__requis "wget logger file tar logger killall"
f__requis "wget file tar killall"
dirInstall="/opt/usr/share/firefox-"
dirProfil="/home/$user_/.mozilla/firefox"
fileProfileIni="$dirProfil/profiles.ini"
@ -486,7 +512,6 @@ case "$1" in
fscript_get_version
ffx_godzilla ;; # affiche versions Firefox en ligne & installées & version script
upgrade )
opType="upgrade"
fscript_get_version
fscript_dl ;; # upgrade script si maj possible
i-latest | i-esr | i-dev | i-beta | i-nightly | \

View File

@ -3,9 +3,11 @@
## todo
* install: copie du profil du canal inférieur?
* paquet firefox: voir /etc/firefox/firefox.js & pref/xdg-browser-loauncher.js
## 1.4.0 28/07/2017
* mieux: fichier log spécifique mais nécessite réinstallation en root (pas de mise à jour)
* mieux: logs d'évènements majeurs
## 1.3.1 27/07/2017