From 8921ea8d6e941e3cc8f4ff46a052d0f631e19f3a Mon Sep 17 00:00:00 2001 From: root Date: Sun, 20 Aug 2017 03:10:23 +0200 Subject: [PATCH] 2.0.8 --- scripts/getFirefox | 121 +++++++++++++++++--------------- scripts/getFirefox_changelog.md | 6 +- 2 files changed, 69 insertions(+), 58 deletions(-) diff --git a/scripts/getFirefox b/scripts/getFirefox index 7196e42..deda8d2 100755 --- a/scripts/getFirefox +++ b/scripts/getFirefox @@ -1,7 +1,7 @@ #!/bin/bash -version=2.0.7 -date="19/08/2017" +version=2.0.8 +date="20/08/2017" projet="simpledeb" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues" script="getFirefox" @@ -195,7 +195,7 @@ fscript_cronAnacron(){ # v19/08/2017 } # mise à jour script si dispo -fscript_dl(){ # v19/08/2017 +fscript_dl(){ # v20/08/2017 f__requis "wget" if [ "$script_aJour" == "ok" ]; then return 0; fi local dirTemp="/tmp/$script-$RANDOM/" @@ -209,7 +209,6 @@ fscript_dl(){ # v19/08/2017 fscript_cronAnacron "upgrade" f__info "\n $script mis à jour en version $versionScript" f__log "$script mis à jour en version $versionScript" - exit 0 } # version script en ligne, assigne $versionScript, $script_aJour=ok|ko @@ -335,7 +334,8 @@ cat << 'EOF' getFirefox i-canal : installation de Firefox getFirefox r-canal : désinstallation de Firefox getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours - ---- + getFirefox m-canal : installation sur le d'une archive téléchargée manuellement + getFirefox version : version(s) installée(s) et en ligne des différents canaux Firefox ---------------------------------------------------------------------- ./getFirefox : installation du script dans le système @@ -356,19 +356,28 @@ echo -e " plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/s # installation Firefox ffx_install(){ [ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer Firefox" - f__info " - installation Firefox-$produit" - local dirTemp="/tmp/$script-$RANDOM/" - local file="firefox-$produit.$architecture.tar.bz2" - mkdir -p "$dirTemp" # dossier temporaire de travail - # téléchargement & test archive - f__info " - téléchargement..." - ffx_recup_url - wget -q -c --show-progress --tries=2 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$file" "$recup_url" - if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi - f__archive_test "$dirTemp$file" || f__error "Le fichier $dirTemp$file n'est pas une archive tar.gz valide" - # décompression - f__info "\n - décompression..." - tar -xaf "$dirTemp$file" -C "$dirTemp" + if [ "$1" == "manuel" ]; then + local versionArchive="$(sed -E 's/firefox-(.*)\.linux.*/\1/' <<< $(stat -c %n $2))" + f__info "installation manuelle de firefox version $versionArchive ($2)" + local dirTemp="$(dirname $2)/$script-$RANDOM/" + local fileTemp="$(basename $2)" + mkdir -p "$dirTemp" + else + f__info "installation Firefox-$produit" + local dirTemp="/tmp/$script-$RANDOM/" + local fileTemp="$dirTemp""firefox-$produit.$architecture.tar.bz2" + mkdir -p "$dirTemp" + # téléchargement & test archive + f__info " - téléchargement..." + ffx_recup_url + wget -q -c --show-progress --tries=2 --timeout=15 --user-agent="$user_agent" -O "$fileTemp" "$recup_url" + if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi + f__archive_test "$fileTemp" || f__error "Le fichier $fileTemp n'est pas une archive tar.gz valide" + echo + fi + # décompression archive téléchargée dans dossier de travail + f__info " - décompression..." + tar -xaf "$fileTemp" -C "$dirTemp" # mise en place finale f__info " - installation..." rm -rf "/opt/firefox-$produit/" # effacement ancien répertoire éventuel @@ -389,11 +398,20 @@ ffx_install(){ ffx_usr_bin # traitement user ffx_profil_user - f__info "$GREEN""Firefox-$produit installé." - f__log "Firefox-$produit installé" + [ "$versionArchive" ] && local sup="version $versionArchive" + f__info "$GREEN""Firefox-$produit installé"" $sup" + f__log "Firefox-$produit installé"" $sup" ffx_godzilla } + # installation d'un FF chargé manuellement, $1 +ffx_install_manuel(){ + [ -e "$1" ] || f__error "fichier $1 introuvable" + f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive valide" + ffx_install "manuel" "$1" + [ "$user_" != "$lognameDev" ] && rm "$1" &>/dev/null # si user pas dev, effacement archive +} + # création lanceur.desktop ffx_lanceur_desktop(){ local fileDesktop="/usr/share/applications/firefox-$produit.desktop" @@ -474,12 +492,10 @@ ffx_profil_user(){ ffx_recup_url(){ if [ "$produit" == "latest" ]; then recup_url="https://download.mozilla.org/?product=firefox-$produit&os=$architecture&lang=fr" - elif [ "$produit" == "esr" ]; then - recup_url="https://download.mozilla.org/?product=firefox-$produit-latest&os=$architecture&lang=fr" - elif [ "$produit" == "beta" ]; then + elif [ "$produit" == "esr" ] || [ "$produit" == "beta" ]; then recup_url="https://download.mozilla.org/?product=firefox-$produit-latest&os=$architecture&lang=fr" elif [ "$produit" == "dev" ]; then - recup_url="https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=$architecture&lang=fr" + recup_url="https://download.mozilla.org/?product=firefox-$produit""edition-latest-ssl&os=$architecture&lang=fr" elif [ "$produit" == "nightly" ]; then recup_url="https://download.mozilla.org/?product=firefox-$produit-latest-l10n-ssl&os=$architecture&lang=fr" ;fi } @@ -551,50 +567,43 @@ ls -d /opt/firefox-* &>/dev/null && problemOldInstall="detected" # ancienne loc "$GREEN voir: $urlNotice#messages-avertissement\n" [ -e "/opt/bin/$script" ] && [ "$(stat -c %G /opt/bin/$script)" == "root" ] && problemDetected+="-1" # droits inappropriés sur le script, version de dev -options="$@" +options=$@ if [ "$(dirname $0)" == "." ]; then unset options else if [ ! -w "$fileLogs" ] && ls -d "$dirInstall"* &>/dev/null ; then problemDetected+="-2"; fi # ancien système de logs via syslog fi [ "$problemDetected" ] && f__info "$RED""l'installation du script est obsolète ($problemDetected)" \ "veuillez réinstaller le script manuellement" "$GREEN""voir $urlNotice""#installation-rapide-du-script" - -for i in "$options"; do +for i in $options; do case $i in - version | versions ) # affiche versions Firefox en ligne & installées + version | versions ) ffx_get_versionsFF fscript_get_version - ffx_godzilla - ;; - i-latest | i-esr | i-dev | i-beta | i-nightly | \ - +latest | +esr | +dev | +beta | +nightly ) # install: installation canal Firefox (gestion ancien répertoire éventuel) - produit="$(echo $1 | sed 's/i-//' | sed 's/+//')" - ffx_install - ;; - r-latest | r-esr | r-dev | r-beta | r-nightly | \ - -latest | -esr | -dev | -beta | -nightly ) # remove: désinstallation Firefox (y compris ancien répertoire éventuel) - produit="$(echo $1 | sed 's/r-//' | sed 's/-//' )" - ffx_remove - ;; - u-latest | u-esr | u-dev | u-beta | u-nightly ) # configurer un profil firefox pour un user - produit="$(echo $1 | sed 's/u-//')" - [ "$problemOldInstall" ] && f__error "vous devriez réinstaller firefox auparavant" - ffx_profil_user "user" - ;; - "" ) if ! dirname "$0" | grep -q 'bin' ; then # installation du script dans le système + ffx_godzilla; break ;; # affiche versions Firefox en ligne & installées + i-latest | i-esr | i-dev | i-beta | i-nightly | +latest | +esr | +dev | +beta | +nightly ) + produit="$(sed 's/i-//; s/+//' <<< "$1")" + ffx_install; break ;; # install: installation canal Firefox (gestion ancien répertoire éventuel) + m-latest | m-esr | m-dev | m-beta | m-nightly ) + produit="$(sed 's/m-//' <<< "$1")" + ffx_install_manuel "$2"; break ;; # installation manuelle d'un chargement, $2 archive, $3 canal à utiliser + r-latest | r-esr | r-dev | r-beta | r-nightly | -latest | -esr | -dev | -beta | -nightly ) + produit="$(sed 's/r-//; s/-//' <<< "$1")" + ffx_remove; break ;; # remove: désinstallation Firefox (y compris ancien répertoire éventuel) + u-latest | u-esr | u-dev | u-beta | u-nightly ) + produit="$(sed 's/u-//' <<< "$1")" + [ "$problemOldInstall" ] && f__error "vous devez réinstaller firefox auparavant" + ffx_profil_user "user"; break ;; # configurer un profil firefox pour un user + "" ) if ! dirname "$0" | grep -q 'bin' ; then fscript_install - else ffx_help; fi - ;; - -r | --remove | sysremove ) # désinstallation du script - fscript_remove - ;; - -u | --upgrade | upgrade ) # upgrade script + else ffx_help; fi ;; # installation du script dans le système + -r | --remove | sysremove ) + fscript_remove; break ;; # désinstallation du script + -u | --upgrade | upgrade ) opType="upgrade" fscript_get_version - fscript_dl - ;; - --version | -v | --versions ) fscript_get_version ;; # version du script, en ligne et exécuté - --help | -h | * ) ffx_help ;; # affichage help + fscript_dl; break ;; # upgrade script + -v | --version ) fscript_get_version; break ;; # version du script, en ligne et exécuté + -h | --help | * ) ffx_help; break ;; # affichage help esac done diff --git a/scripts/getFirefox_changelog.md b/scripts/getFirefox_changelog.md index ec87549..5976171 100644 --- a/scripts/getFirefox_changelog.md +++ b/scripts/getFirefox_changelog.md @@ -3,18 +3,20 @@ ## todo * install: copie du profil du canal inférieur? -* install archive manuelle? * pocket * user.pref (autoplay, ...) * peaufiner contexte upgrade lors cron (affichage, requis, user) -## 2.0.7 19/08/2017 +## 2.0.8 20/08/2017 * maj fscript_cronAnacron & plus de redémarrage service cron inutile & fonction spécifique pour certains scripts service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC" * fscript_dl plus de sortie progression download * fscript_get_version inclut version en cours * fscript_install mise en page +* install archive manuelle +* révision ffx_install +* plusieurs options lancement possibles ## 2.0.6 18/08/2017