diff --git a/scripts/getFirefox b/scripts/getFirefox index 7d02074..26ffdb0 100755 --- a/scripts/getFirefox +++ b/scripts/getFirefox @@ -1,6 +1,6 @@ #!/bin/bash -version=0.6.1 +version=0.7.0 date="21/07/2017" projet="Kyodev" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues" @@ -333,7 +333,9 @@ ffx_profilIni(){ # traitement utilisateur ffx_profilUser(){ - [ "$1" == "user" ] && [ -x "/usr/bin/firefox-$product" ] || f__error "firefox $product n'est pas installé" " il faut donc utiliser l'installation et pas l'ajout d'un nouveau profil" + if [ "$1" == "user" ] && [ ! -x "/usr/bin/firefox-$product" ]; then + f__error "firefox $product n'est pas installé" " il faut donc utiliser l'installation et pas l'ajout d'un nouveau profil" + fi dirProfil="/home/$user_/.mozilla/firefox" fileProfileIni="$dirProfil/profiles.ini" # si profile.ini existe on traite default sinon on le crée avec minimum d'entête @@ -344,7 +346,7 @@ ffx_profilUser(){ if [ "$profileDefault" ] && [ -d "$dirProfil/$profileDefault" ] && [ "$product" == "latest" ] || [ "$product" == "esr" ]; then if [ ! -d "$dirProfil/$product" ]; then mkdir -p "$dirProfil/$product" - f__info "récupération du profil default existant $profileDefault" + f__info "récupération du profil default existant <$profileDefault>" cp -R "$dirProfil/$profileDefault"/* "$dirProfil/$product/" fi fi @@ -358,7 +360,12 @@ ffx_profilUser(){ chmod g-rx,o-rx "$dirProfil/$product/" # droits répertoire comme firefox officiel ffx_profilIni ffx_lanceur_desktop - f__info "profil $product configuré pour $user_" + # suppression alternatives x-www-browser si existantes + if update-alternatives --get-selections | grep firefox | grep x-www-browser &>/dev/null; then + update-alternatives --quiet --remove-all x-www-browser + fi + update-alternatives --quiet --install /usr/bin/firefox x-www-browser "/usr/bin/firefox-$product" 100 + f__info "profil <$product> configuré pour $user_" } # calcul url téléchargement, assigne $recup_url @@ -391,11 +398,10 @@ ffx_install(){ if [ "$?" != "0" ]; then f__testWget "$recup_url"; fi f__testArchive "$dirTemp$file" || f__error "Le fichier $dirTemp$file n'est pas une archive tar.gz valide" # décompression - f__info "décompression..." + f__info "\n décompression..." tar -xaf "$dirTemp$file" -C "$dirTemp" f__info "installation..." - ffx_profilUser # traitement user # on déplace le répertoire firefox dans le répertoire installation rm -rf "$dirInstall$product"/ # effacement éventuel répertoire existant: "vraie" install mkdir -p "$dirInstall$product"/ @@ -412,16 +418,17 @@ ffx_install(){ elif [ "$product" == "esr" ]; then ln -sf "/usr/bin/firefox-esr" "/usr/bin/firefox"; fi # lien icone Firefox ln -sf "$dirInstall$product"/browser/chrome/icons/default/default48.png /usr/share/pixmaps/firefox-"$product".png + # traitement user + ffx_profilUser f__info "$GREEN""Firefox-$product installé." -# # alternatives, à traiter -# update-alternatives --quiet --install /usr/bin/firefox-"$product" x-www-browser "$dirInstall$product"/firefox 100 } # désinstallation de firefox ffx_remove(){ f__root || f__error "vous devez être ROOT pour désinstaller" ffx_godzilla + killall "/opt/usr/share/firefox-$product/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-$product.desktop" ]; then f__info "$GREEN" "Firefox-$product n'est pas installé." @@ -439,12 +446,17 @@ ffx_remove(){ if [ "$product" == "latest" ]; then unlink "/usr/bin/firefox" &>/dev/null elif [ "$product" == "esr" ]; then unlink "/usr/bin/firefox" &>/dev/null; fi unlink "/usr/bin/firefox-$product" &>/dev/null - # suppression alternatives si existantes - if update-alternatives --display x-www-browser &>/dev/null; then - update-alternatives --display x-www-browser | grep firefox-"$product" &>/dev/null && update-alternatives --quiet --remove x-www-browser /opt/firefox/firefox-"$product" + # suppression alternatives x-www-browser si existantes + if update-alternatives --get-selections | grep firefox-"$product" | grep x-www-browser &>/dev/null; then + update-alternatives --quiet --remove-all x-www-browser fi - - f__info "$GREEN" "Firefox-$product désinstallé." + # définition du plus "bas" canal pour alternatives + for i in nightly dev beta esr latest; do + if [ -d "/home/$user_/.mozilla/firefox/$i" ]; then firefoxAlternative="$i"; fi + done + update-alternatives --quiet --install /usr/bin/firefox x-www-browser "/usr/bin/firefox-$firefoxAlternative" 100 + f__info "alternatives installées pour <$firefoxAlternative>" + f__info "$GREEN""Firefox-$product désinstallé." } @@ -475,8 +487,9 @@ case "$1" in opType="upgrade" fscript_version fscript_dl ;; # upgrade script si maj possible - +latest | +esr | +dev | +beta | +nightly ) - product="$(echo $1 | sed 's/+//')" + +latest | +esr | +dev | +beta | +nightly | \ + i-latest | i-esr | i-dev | i-beta | i-nightly ) + product="$(echo $1 | sed 's/+//' | sed 's/i-//')" ffx_install ;; # installation plugin -latest | -esr | -dev | -beta | -nightly ) product="$(echo $1 | sed 's/-//')" diff --git a/scripts/getFirefox_changelog.md b/scripts/getFirefox_changelog.md index 76c6978..76f1b41 100644 --- a/scripts/getFirefox_changelog.md +++ b/scripts/getFirefox_changelog.md @@ -3,8 +3,13 @@ ## todo * suppression profil? -* voir alternatives par ordre croissant, latest ou esr sinon beta sinon nightly (hors dev) +## 0.7.0 21/07/17 + +* mieux: alternatives + * installation: alternatives pour canal installé + * remove: alternatives pour canal le plus faible (latest ou esr) si existant +* révision: firefox remove ## 0.6.1 21/07/17