From 22da39b19056833d0f5da55cf922052cb1d4df77 Mon Sep 17 00:00:00 2001 From: kyodev Date: Sat, 2 Sep 2017 09:49:12 +0200 Subject: [PATCH] 3.1.0 --- scripts/getFirefox | 131 ++++++++++++++++++++------------ scripts/getFirefox_changelog.md | 13 ++-- 2 files changed, 90 insertions(+), 54 deletions(-) diff --git a/scripts/getFirefox b/scripts/getFirefox index d401637..3d42225 100755 --- a/scripts/getFirefox +++ b/scripts/getFirefox @@ -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 - getFirefox r-canal : désinstallation de Firefox - getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours + 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 p-canal : personnalisation sur le 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 d'une archive téléchargée manuellement + getFirefox p-canal : personnalisation sur le 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 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 diff --git a/scripts/getFirefox_changelog.md b/scripts/getFirefox_changelog.md index cebb550..cf3e9db 100644 --- a/scripts/getFirefox_changelog.md +++ b/scripts/getFirefox_changelog.md @@ -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