This commit is contained in:
kyodev 2017-09-02 09:49:12 +02:00
parent 30c3f30554
commit 22da39b190
2 changed files with 90 additions and 54 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=3.0.0
date="01/09/2017"
version=3.1.0b
date="02/09/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getFirefox"
@ -195,7 +195,7 @@ f__wget_test(){ # v31/08/2017
}
# affichage help
f_help(){ # v25/08/2017
f_help(){ # v02/09/2017
printf $BLUE
cat << 'EOF'
----------------------------------------------------------------------
@ -206,13 +206,14 @@ cat << 'EOF'
installation version latest, beta, nightly: getFirefox i-all
installation Tor Browser: getFirefox i-tor
getFirefox i-canal : installation de Firefox <canal>
getFirefox r-canal : désinstallation de Firefox <canal>
getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours
getFirefox i-canal : installation de Firefox <canal>
getFirefox r-canal : désinstallation de Firefox <canal>
getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours
getFirefox m-canal : installation sur le <canal> d'une archive téléchargée manuellement
getFirefox p-canal : personnalisation sur le <canal> de user.js & userChrome.css
getFirefox pu : mise à jour (des) personnalisation(s) installée(s) Firefox et Tor Browser
getFirefox m-canal : installation sur le <canal> d'une archive téléchargée manuellement
getFirefox p-canal : personnalisation sur le <canal> de user.js & userChrome.css
getFirefox pu : mise à jour (des) personnalisation(s) installée(s) Firefox et Tor Browser
getFirefox pr-canal : personnalisation sur le <canal> de user.js & userChrome.css
getFirefox version : version(s) installée(s) et en ligne des différents canaux Firefox
Tor Browser, version script et personnalisation
@ -233,7 +234,7 @@ echo -e " plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/s
}
# assigne $verTorOnline
f_tb_get_version(){ # v31/08/2017
f_tb_get_version(){ # v02/09/2017
local fileTmp recup_urlTb verTorInstall
# version online
fileTmp="/tmp/getFirefox-wgetVer-$RANDOM"
@ -244,11 +245,10 @@ f_tb_get_version(){ # v31/08/2017
[ "$verTorOnline" ] || verTorOnline="$RED""NA"
# version installée
if [ -e "$dirInstallTB"Browser/TorBrowser/Docs/ChangeLog.txt ]; then
# verTorInstall="$GREEN$(sed -n '1p' "$dirInstallTB"Browser/TorBrowser/Docs/ChangeLog.txt | sed -En 's/^Tor Browser (.*) --.*$/\1/p')"
verTorInstall="$(sed -n '1p' "$dirInstallTB"Browser/TorBrowser/Docs/ChangeLog.txt | sed -En 's/^Tor Browser (.*)$/\1/p')"
fi
[ "$verTorInstall" ] || verTorInstall="$RED""NA"
f__info "raw" "version Tor Browser installé(s): $GREEN$verTorInstall$COLORS"
f__info "raw" "version Tor Browser installé: $GREEN$verTorInstall$COLORS"
f__info "version Tor Browser en ligne: $YELLOW$verTorOnline$COLORS"
}
@ -359,10 +359,13 @@ f_tb_pers_get_version(){ # v01/09/2017
}
# recup userTor.js et chrome/userChrome.css pour Tor Browser
f_tb_pers_install(){ # v01/09/2017
f_tb_pers_install(){ # v02/09/2017
local urlPersTb verPersTbDL dirTemp
local profilTor="$dirInstallTB""Browser/TorBrowser/Data/Browser/profile.default/"
[ ! -d "$profilTor" ] && return
if [ ! -d "$profilTor" ]; then
f__info "Tor Browser inexistant"
return 1
fi
# détermination url chargement fichiers personnalisation, std ou spécifique dans personnalisation.getFirefox
if [ -e "$profilTor""personnalisation.$script" ]; then
urlPersTb="$(sed -n '1p' $profilTor'personnalisation.'$script)"
@ -392,6 +395,15 @@ f_tb_pers_install(){ # v01/09/2017
f__info "log" "personnalisation $verPersTbDL mise en place pour Tor Browser"
}
# supprime personnalisation pour Tor Browser
f_tb_pers_remove(){ # v02/09/2017
local profilTor="$dirInstallTB""Browser/TorBrowser/Data/Browser/profile.default/"
# "$profilTor""chrome/" volontairement laissé si autres fichiers ajoutés
rm "$profilTor""user.js" "$profilTor""personnalisation.$script"
rm "$profilTor""chrome/userChrome.css"
f__info "log" "personnalisation Tor Browser désinstallé"
}
# maj userTor.js et chrome/userChrome.css pour Tor Browser
f_tb_pers_upgrade(){ # v01/09/2017
f_tb_pers_get_version
@ -574,38 +586,41 @@ ffx_lanceur_desktop(){
}
# version personnalisation en ligne, assigne $prodATraiter
ffx_pers_get_version(){ # v01/09/2017
local urlPers verPersOnline versionPersInstall persEnPlace
if [ -e "$dirProfil/$produit/personnalisation.$script" ]; then
urlPers="$(sed -n '1p' $dirProfil/$produit/personnalisation.$script)"
else
urlPers="https://framagit.org/kyodev/kyopages/raw/master/scripts/"
fi
verPersOnline="$(wget -q --tries=2 --timeout=15 -O - $urlPers'user.js' | sed -En 's/\/\*v(.*)\*\//\1/p')"
if [ "$verPersOnline" ]; then
for prod in latest esr beta dev nightly; do
if [ -e "$dirProfil/$prod/personnalisation.$script" ]; then
versionPersInstall="$(sed -n '2p' $dirProfil/$prod/personnalisation.$script)"
if [ "$versionPersInstall" != "$verPersOnline" ]; then prodATraiter+="$prod "; fi
persEnPlace+="$prod "
fi
done
[ "$persEnPlace" ] && f__info "raw" "$GREEN""personnalisation(s) installée(s) pour $persEnPlace$COLOR"
if [ "$prodATraiter" ]; then
f__info "version personnalisation en ligne: $verPersOnline, mise à jour possible pour $prodATraiter"
ffx_pers_get_version(){ # v02/09/2017
local urlPers verPersOnline verPersInstall persEnPlace
for prod in latest esr beta dev nightly; do
if [ -e "$dirProfil/$prod/personnalisation.$script" ]; then
urlPers="$(sed -n '1p' $dirProfil/$prod/personnalisation.$script)"
else
f__info "version personnalisation en ligne: $verPersOnline, pas de mise à jour à faire"
urlPers="https://framagit.org/kyodev/kyopages/raw/master/scripts/"
fi
else f__info "version personnalisation en ligne non accessible"; fi
verPersOnline="$(wget -q --tries=2 --timeout=15 -O - $urlPers'user.js' | sed -En 's/\/\*v(.*)\*\//\1/p')"
if [ "$verPersOnline" ]; then
if [ -e "$dirProfil/$prod/personnalisation.$script" ]; then
verPersInstall="$(sed -n '2p' $dirProfil/$prod/personnalisation.$script)"
if [ "$verPersInstall" != "$verPersOnline" ]; then prodATraiter+="$prod "; fi
persEnPlace+="$prod($verPersInstall) "
fi
else f__info "version personnalisation en ligne non accessible"; fi
done
[ "$persEnPlace" ] && f__info "raw" "$GREEN""personnalisation(s) installée(s) pour $persEnPlace$COLOR"
if [ "$prodATraiter" ]; then
f__info "version personnalisation en ligne: $verPersOnline, mise à jour possible pour $prodATraiter"
else
f__info "version personnalisation en ligne: $verPersOnline, pas de mise à jour à faire"
fi
}
# recup user.js et chrome/userChrome.css, $1=produit à personnaliser ou mettre à jour
ffx_pers_install(){ # v01/09/2017
local produit="$1" urlPers verPersDL dirTemp
[ ! -d "$dirProfil/$produit" ] && return
# recup user.js et chrome/userChrome.css, $1=canal à personnaliser ou mettre à jour
ffx_pers_install(){ # v02/09/2017
local canal="$1" urlPers verPersDL dirTemp
if [ ! -d "$dirProfil/$canal" ]; then
f__info "firefox $canal inexistant"
return 1
fi
# détermination url chargement fichiers personnalisation, std ou spécifique dans personnalisation.getFirefox
if [ -e "$dirProfil/$produit/personnalisation.$script" ]; then
urlPers="$(head -n1 "$dirProfil/$produit/personnalisation.$script")"
if [ -e "$dirProfil/$canal/personnalisation.$script" ]; then
urlPers="$(sed -n '1p' $dirProfil/$canal/personnalisation.$script)"
else
urlPers="https://framagit.org/kyodev/kyopages/raw/master/scripts/"
fi
@ -618,15 +633,24 @@ ffx_pers_install(){ # v01/09/2017
wget -q --tries=1 --timeout=15 -O "$dirTemp"userChrome.css "$urlPers"userChrome.css
chown -R "$user_": "$dirTemp"
# installation
mkdir -p "$dirProfil/$produit/chrome/" # répertoire pour userChrome.css
chown "$user_": "$dirProfil/$produit/chrome"
cp "$dirTemp"user.js "$dirProfil/$produit/"
[ -e "$dirTemp"userChrome.css ] && cp "$dirTemp"userChrome.css "$dirProfil/$produit/chrome"
echo "$urlPers" > "$dirProfil/$produit/personnalisation.$script"
echo "$verPersDL" >> "$dirProfil/$produit/personnalisation.$script"
chown -R "$user_": "$dirProfil/$produit/personnalisation.$script"
mkdir -p "$dirProfil/$canal/chrome/" # répertoire pour userChrome.css
chown "$user_": "$dirProfil/$canal/chrome"
cp "$dirTemp"user.js "$dirProfil/$canal/"
[ -e "$dirTemp"userChrome.css ] && cp "$dirTemp"userChrome.css "$dirProfil/$canal/chrome"
echo "$urlPers" > "$dirProfil/$canal/personnalisation.$script"
echo "$verPersDL" >> "$dirProfil/$canal/personnalisation.$script"
chown -R "$user_": "$dirProfil/$canal/personnalisation.$script"
rm -rf "$dirTemp"
f__info "log" "personnalisation $verPersDL mise en place pour $produit"
f__info "log" "personnalisation $verPersDL mise en place pour $canal"
}
# supprime une personnalisation pour un canal, $1=canal à traiter
ffx_pers_remove(){ # v02/09/2017
local canal="$1"
# "$dirProfil/$canal/chrome/" répertoire laissé en place si autres fichiers
rm "$dirProfil/$canal/user.js" "$dirProfil/$canal/personnalisation.$script"
rm "$dirProfil/$canal/chrome/userChrome.css"
f__info "log" "personnalisation pour Firefox $canal désinstallé"
}
# maj user.js et chrome/userChrome.css
@ -910,6 +934,7 @@ 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
grep -Eq '^exec.*/firefox -P.*$' '/usr/bin/firefox' && problemDetected+="-3" # raccourci /usr/bin en erreur
options=$@
if [ "$(dirname $0)" == "." ]; then options="-i" # script install
else
@ -935,6 +960,11 @@ for i in $options; do
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
for i in $produit; do ffx_pers_install "$i"; done
exit ;; # mise en place personnalisation
pr-latest | pr-esr | pr-dev | pr-beta | pr-nightly | pr-all )
produit="$(sed 's/pr-//' <<< "$1")"
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
for i in $produit; do ffx_pers_remove "$i"; done
exit ;; # supression personnalisation
pu )
ffx_pers_upgrade
f_tb_pers_upgrade
@ -964,6 +994,9 @@ for i in $options; do
p-tor )
f_tb_pers_install
exit ;; # personnalisation pour tor browser
pr-tor )
f_tb_pers_remove
exit ;; # supression personnalisation pour tor browser
r-tor )
f_tb_remove
exit ;; # désinstallation tor browser

View File

@ -1,14 +1,18 @@
# changelog getFirefox
## todo
* install: copie du profil du canal inférieur?
* détecter /usr/bin/firefox pas à jour
## 3.1.0 02/09/2017
* révision mineure f_tb_get_version, f_tb_pers_install, ffx_pers_install
* fix bug: url personnalisée pour ffx_pers_get_version
* nouveau: option suppression des personnalisations
## 3.0.0 01/09/2017
* révision mineure f__wget_test
* tor-browser
* nouveau: tor-browser
## 2.9.2 31/08/2017
@ -35,7 +39,6 @@
* révision f__wget_test
* révision mineure ffx_pers_get_version, ffx_get_versionsFF
## 2.6.0 27/08/2017
* fix bug install