From 7a5c12c3a778e392098bf9b54b9b5cb271d464d9 Mon Sep 17 00:00:00 2001 From: kyodev Date: Fri, 28 Jul 2017 12:12:50 +0200 Subject: [PATCH] 1.4.0 --- scripts/getFirefox | 49 +++++++++++++++++++++++++-------- scripts/getFirefox_changelog.md | 4 ++- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/scripts/getFirefox b/scripts/getFirefox index 0571a48..39827a7 100755 --- a/scripts/getFirefox +++ b/scripts/getFirefox @@ -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: $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 | \ diff --git a/scripts/getFirefox_changelog.md b/scripts/getFirefox_changelog.md index 313a881..3eac0b5 100644 --- a/scripts/getFirefox_changelog.md +++ b/scripts/getFirefox_changelog.md @@ -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