From 5c89968aa4877517393f7ed2579aab789fcc7cb2 Mon Sep 17 00:00:00 2001 From: kyodev Date: Sun, 11 Jun 2017 09:43:59 +0200 Subject: [PATCH] 0.3.0b --- docs/scripts/getFirefox.md | 130 ++++++++++++++++++++++++++----------- scripts/getFirefox | 125 ++++++++++++++++++++--------------- 2 files changed, 163 insertions(+), 92 deletions(-) diff --git a/docs/scripts/getFirefox.md b/docs/scripts/getFirefox.md index 2dd9b7a..649eb16 100644 --- a/docs/scripts/getFirefox.md +++ b/docs/scripts/getFirefox.md @@ -1,5 +1,5 @@ # getFirefox -**version 0.2.0b** +**version 0.3.0beta** ## charger le script @@ -16,9 +16,10 @@ su exit ``` * le script est maintenant dans le système et tout utilisateur peut s'en servir. - * si le paquet `firefox-esr` est présent, il sera **désinstallé**. - * **Fermer Firefox existant** avant installation - * si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant. + * si le paquet Debian `firefox-esr` est présent, il sera **désinstallé**. + * **Fermer un Firefox existant** avant installation + * si ce paquet devait être ré-installé, il semble préférable de désinstaller ces version + officielles auparavant. ## help @@ -33,30 +34,34 @@ lancer le script sans arguments: `getFirefox` \__, |\___|\__|_| |_|_| \___|_| \___/_/\_\ |___/ - Firefox-latest pour Debian, version 0.2.0b - 10/06/2017 + pour Debian, version 0.3.0beta - 10/06/2017 ----------------------------------------------------------------------- ./getFirefox : installation du script dans le système - getFirefox version : version en ligne de Firefox-latest - getFirefox +latest : téléchargement & installation de Firefox-latest - getFirefox +esr : installation de Firefox-esr - getFirefox : installation branche Developer Edition de Firefox - getFirefox : installation branche Nightly de Firefox - getFirefox : installation TorBrowser - getFirefox -latest : désinstallation de Firefox-latest - getFirefox -esr : désinstallation de Firefox-esr - + getFirefox +latest : installation Firefox Release + getFirefox -latest : désinstallation Firefox Release + getFirefox version : version en ligne Firefox Release & ESR + ---- + getFirefox +aurora : installation de Firefox Developer Edition + getFirefox -aurora : désinstallation Firefox Developer Edition + getFirefox +nightly : installation de Firefox Nightly + getFirefox -nightly : désinstallation Firefox Nightly + getFirefox +esr : installation de Firefox ESR + getFirefox -esr : désinstallation Firefox ESR + ---- getFirefox sysremove : désinstall du script du système ----------------------------------------------------------------------- Ce script doit être exécuté avec les droits ROOT. - Il désinstallera le paquet firefox-esr si présent. + FERMER et DESINSTALLER un Firefox existant avant d'installer un + nouveau canal + Il désinstallera le paquet Debian firefox-esr si présent. Ce script devrait fonctionner sur Ubuntu. ----------------------------------------------------------------------- ``` -## installation version _latest_ +## installation _Release_ ``` su @@ -80,32 +85,75 @@ vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' ``` * Firefox est installé, en étant directement chargé du site Mozilla. * c'est la dernière release officielle, qui se met à jour automatiquement. - * mise à jour majeure toutes les 6 semaines environ. - * version 53 en juin 2017. - + * mise à jour majeure toutes les 6 à 8 semaines environ. -## désinstallation Firefox -`getFirefox` +## versions en ligne - * A venir - -## version en ligne - -`getFirefox version`: affiche la version en ligne de +`getFirefox version`: affiche la version en ligne de: * Firefox version latest release * Firexos version esr -## installation version _esr_ +## installation autres canaux -`getFirefox +esr` +3 autres canaux sont possibles: - * Firefox Esr est installé, en étant directement chargé du site Mozilla. - * c'est la dernière Esr officielle. - * mise à jour majeure toutes les ans environ. - * version 52 en juin 2017. + * Developer Developer (**aurora**), orientée développeurs, version _beta_ comme _testing_, + [Mozilla developer](https://www.mozilla.org/fr/firefox/developer/) + * Nightly, réservé aux aventuriers, mise à jour tous les jours, version _alpha_ comme _sid_ + [Mozilla Nightly](https://blog.nightly.mozilla.org/) + * ESR, mise à jour majeure toutes les ans environ, avec support à plus long terme. + mise à jour majeure toutes les ans environ, en savoir plus + [Mozilla ESR](https://developer.mozilla.org/fr/Firefox/Firefox_ESR) + +l'installation est lancée avec _getFirefox _**+canal**, soit: + `getFirefox +aurora`, `getFirefox +nightly`, `getFirefox +esr` + +## Avertissement + +** seules les versions **ESR** et **latest** sont intallables sans risques avec ce script** +le reste est en cours de développement + +les versions des autres canaux, sont à utiliser avec prudence, seulement si vous maitrisez la technique. + +les versions des canaux par ordre croissant: +``` + ESR <= release < aurora < nightly +``` + * il n'est **pas conseillé de descendre de version** au risque de voir le profil utilisateur **corrompu**. + * par contre les profils suivent plus sûrement les montées de version + * le script sauvegarde automatiquement, avant installation, le profil firefox de l'utilisateur qui a ouvert la + session graphique + * le profil, par ex. `/home/user/.mozilla/firefox/`, est sauvegardé en `/home/user/.mozilla/AAAAMMDD-HHMMSS/`, + avec un suffixe correspondant à la date UTC. + * ce profil pourrait servir en cas de problème, notamment lors d'une tentative de revenir à une version inférieure + +### upgrade en aurora + +exemple, Firefox est en release, vous voulez suivre le canal **Nightly** + + * **fermer Firefox** + * désinstaller _latest_ + * installer _nightly_ + +```shell +su +getFirefox -latest +getFirefox +nightly +exit +``` + + * le profil existant a été sauvegardé en `/home/user/.mozilla/20170610-173205` + * le profil original est toujours en `/home/user/.mozilla/firefox/` et sera utilisé par la nouvelle + version installée + + +## désinstallation Firefox + +l'installation est lancée avec _getFirefox _**-canal**, soit: +`getFirefox -esr`, `getFirefox -aurora`, `getFirefox -nightly` ## supprimer le script sur le systeme @@ -113,13 +161,17 @@ vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' en **root**: `getFirefox sysremove` -## évolution - - * Firefox version Developer Edition - * Firefox version Nightly - * Firefox version TorBrowser - - ## sources sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFirefox) + + +## Contact + +pour tout problème ou suggestion concernant ce script, n'hésitez pas à ouvrir une issue +[Framagit](https://framagit.org/kyodev/kyopages/issues) + + +## LPRAB/WTFPL + +[license](../about/LICENSE) diff --git a/scripts/getFirefox b/scripts/getFirefox index 9192a83..45acd15 100755 --- a/scripts/getFirefox +++ b/scripts/getFirefox @@ -1,12 +1,12 @@ #!/bin/bash -version="0.2.2b" +version="0.3.0beta" projet="Kyodev" contact="https://framagit.org/kyodev/kyopages/issues" date="10/06/2017" script="getFirefox" -##### licence LPRAB/WTFPL +##### license LPRAB/WTFPL # auteurs: kyodev # contibuteurs: - ##### @@ -31,7 +31,7 @@ cat << 'EOF' |___/ EOF -echo -e "$YELLOW Firefox-latest pour Debian, version $version - $date\n$COLOR" +echo -e "$YELLOW pour Debian, version $version - $date\n$COLOR" #### fonctions diverses ================================================ @@ -65,6 +65,11 @@ f_scriptBin(){ if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi } + # user ayant démarré la session graphique; $userHome +f_userHome(){ + userHome=$(echo $XAUTHORITY | sed -E 's/(.*)\.Xauthority/\1/') +} + #### fonctions script ================================================== @@ -79,6 +84,7 @@ f_versionFF(){ if [ "$1" != "quiet" ]; then f_info "Version Firefox en ligne: $verLatest\n Version esr: $verEsr"; fi } + # ascii art godzilla f_godzilla(){ cat << 'EOF' @@ -103,27 +109,30 @@ EOF f_help(){ printf $BLUE cat << 'EOF' - ----------------------------------------------------------------------- + ---------------------------------------------------------------------- ./getFirefox : installation du script dans le système - getFirefox version : version en ligne de Firefox-latest - getFirefox +latest : téléchargement & installation de Firefox Release - getFirefox +esr : installation de Firefox Esr - getFirefox : installation branche Developer Edition (aurora) - getFirefox : installation branche Nightly de Firefox - getFirefox : installation TorBrowser - getFirefox -latest : désinstallation de Firefox-latest - getFirefox -esr : désinstallation de Firefox-esr - - getFirefox sysremove : désinstall du script du système + getFirefox +latest : installation Firefox Release + getFirefox -latest : désinstallation Firefox Release + getFirefox version : version en ligne Firefox Release & ESR + ---- + getFirefox +aurora : installation de Firefox Developer Edition + getFirefox -aurora : désinstallation Firefox Developer Edition + getFirefox +nightly : installation de Firefox Nightly + getFirefox -nightly : désinstallation Firefox Nightly + getFirefox +esr : installation de Firefox ESR + getFirefox -esr : désinstallation Firefox ESR + ---- + getFirefox sysremove : désinstallation du script du système EOF - printf $COLOR -cat << 'EOF' - ----------------------------------------------------------------------- + printf $COLOR; cat << 'EOF' + ---------------------------------------------------------------------- Ce script doit être exécuté avec les droits ROOT. - Il désinstallera le paquet firefox-esr si présent. + FERMER et DESINSTALLER un Firefox existant avant d'installer un + nouveau canal + Il désinstallera le paquet Debian firefox-esr si présent. Ce script devrait fonctionner sur Ubuntu. - ----------------------------------------------------------------------- + ---------------------------------------------------------------------- EOF printf $COLOR @@ -151,6 +160,11 @@ f_sysremove(){ f_info "$GREEN$script est supprimé du système.\n" } + # sauvegarde profil +f_sauveProfil(){ + f_userHome + cp -a "$userHome".mozilla/firefox/ "$userHome".mozilla/"$(date -u +%Y%m%d-%H%M%S)"/ +} # install firefox f_install(){ @@ -159,9 +173,7 @@ f_install(){ # debian? sinon dehors / utile? / if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi - printf $RED - f_godzilla - printf $COLOR + printf $RED; f_godzilla; printf $COLOR # on vire 'firefox-esr' si installé if [ "$( dpkg-query -l firefox-esr &>/dev/null | grep -Eo ^ii)" == "ii" ]; then apt-get remove firefox-esr; fi @@ -172,13 +184,16 @@ f_install(){ # calcul $file, $url, affichage version pendant l'install file="firefox-$product.$architecture.tar.bz2" - if [ "$product" == "esr" ]; then - f_info "installation Firefox-esr, version $verEsr" - url="https://download.mozilla.org/?product=firefox-esr-latest&os=$architecture&lang=fr" - elif [ "$product" == "latest" ]; then - f_info "installation Firefox-latest, version $verLatest" - url="https://download.mozilla.org/?product=firefox-latest&os=$architecture&lang=fr" - else f_error "branche firefox inconnue"; fi + if [ "$product" == "latest" ]; then + f_info "installation Firefox-$product, version $verLatest" + url="https://download.mozilla.org/?product=firefox-$product&os=$architecture&lang=fr" + elif [ "$product" == "esr" ]; then + f_info "installation Firefox-$product, version $verEsr" + url="https://download.mozilla.org/?product=firefox-$product-latest&os=$architecture&lang=fr" + else + f_info "installation Firefox-$product" + url="https://download.mozilla.org/?product=firefox-$product-latest-l10n-ssl&os=linux&lang=fr" + fi # dossier temporaire de travail, création $dirTemp dirTemp="/tmp/$script/" @@ -201,6 +216,9 @@ f_install(){ f_info "installation...." + #sauvegarde du profil + f_sauveProfil + # install lanceur f_lanceur(){ rm -f /usr/share/applications/firefox-"$product".desktop @@ -236,22 +254,21 @@ EOF # lien pixmap ln -sf /opt/firefox-"$product"/browser/chrome/icons/default/default48.png /usr/share/pixmaps/firefox-"$product".png -# # liens /usr/bin inutile? -# ln -sf /opt/firefox/firefox-"$product" /usr/bin/firefox +# # alternatives +# update-alternatives --quiet --install /usr/bin/firefox-"$product" x-www-browser /opt/firefox-"$product"/firefox 100 - # alternatives - update-alternatives --quiet --install /usr/bin/firefox-"$product" x-www-browser /opt/firefox-"$product"/firefox 100 -# update-alternatives --quiet --install /usr/bin/firefox-"$product" gnome-www-browser /opt/firefox-"$product"/firefox 100 -# update-alternatives: erreur: le lien alternatif /usr/bin/firefox-latest est déjà géré par x-www-browser + # test sans alternatives, et avec liens dans /usr/bin pour latest en tant que firefox + if [ "$product" == "latest" ]; then ln -sf /opt/firefox-"$product"/firefox /usr/bin/firefox; fi #ménage rm -rf "$dirTemp" # the end f_info "$GREEN""Firefox-$product est installé.\n" + if [ $product == "nightly" ]; then f_info "pour savoir comment participer au développement: https://nightly.mozfr.org/participer/"; fi } - # suppression de firefox + # désinstallation de firefox f_remove(){ if ! f_root ; then f_error "vous devez être ROOT pour désinstaller"; fi @@ -273,34 +290,36 @@ f_remove(){ #### traitements arguments ============================================= - -if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" -elif [ "$1" == "version" ]; then cmd="version" -elif [ "$1" == "+latest" ]; then cmd="install"; product='latest' -elif [ "$1" == "-latest" ]; then cmd="remove"; product='latest' -elif [ "$1" == "+esr" ]; then cmd="install"; product='esr' -elif [ "$1" == "-esr" ]; then cmd="remove"; product='esr' -elif [ "$1" == "sysremove" ]; then cmd="sysremove" +if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" +elif [ "$1" == "version" ]; then cmd="version" +elif [ "$1" == "+latest" ]; then cmd="install"; product='latest' +elif [ "$1" == "-latest" ]; then cmd="remove"; product='latest' +elif [ "$1" == "+esr" ]; then cmd="install"; product='esr' +elif [ "$1" == "-esr" ]; then cmd="remove"; product='esr' +elif [ "$1" == "+aurora" ]; then cmd="install"; product='aurora' +elif [ "$1" == "-aurora" ]; then cmd="remove"; product='aurora' +elif [ "$1" == "+nightly" ]; then cmd="install"; product='nightly' +elif [ "$1" == "-nightly" ]; then cmd="remove"; product='nightly' +elif [ "$1" == "sysremove" ]; then cmd="sysremove" else cmd="help" fi - -#### installation script si pas dans le système ======================== +#### installation du script si pas dans le système ===================== if ! f_scriptBin ; then f_sysinstall; fi +#### désinstallation du script ========================================= +if [ "$cmd" == "sysremove" ]; then f_sysremove; fi + #### help ============================================================== if [ "$cmd" == "help" ]; then f_help; fi -#### système remove ==================================================== -if [ "$cmd" == "sysremove" ]; then f_sysremove; fi - -#### fonction version en ligne ========================================= +#### version en ligne ================================================== if [ "$cmd" == "version" ]; then f_versionFF; fi -#### remove, on vire flash ============================================= -if [ "$cmd" == "remove" ]; then f_remove; fi - #### installation ====================================================== if [ "$cmd" == "install" ]; then f_install; fi +#### désinstallation =================================================== +if [ "$cmd" == "remove" ]; then f_remove; fi + exit 0