This commit is contained in:
kyodev 2017-07-21 17:21:00 +02:00
parent 2023700667
commit d9af327ba7
2 changed files with 34 additions and 16 deletions

View File

@ -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/-//')"

View File

@ -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