mirror of https://framagit.org/kyodev/kyopages.git
3.7.0
This commit is contained in:
parent
fc8ad847cf
commit
09d866e7d5
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
version=3.6.2
|
version=3.7.0
|
||||||
date="06/09/2017"
|
date="09/09/2017"
|
||||||
projet="simpledeb"
|
projet="simpledeb"
|
||||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||||
script="getFirefox"
|
script="getFirefox"
|
||||||
|
@ -83,7 +83,7 @@ f__info() { # v25/08/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
|
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
|
||||||
f__log(){ # v08/2017
|
f__log(){ # v08/O9/2017
|
||||||
if [ -w "$fileLogs" ]; then
|
if [ -w "$fileLogs" ]; then
|
||||||
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
|
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
|
||||||
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
|
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
|
||||||
|
@ -91,7 +91,8 @@ f__log(){ # v08/2017
|
||||||
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
|
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
f__info "$fileLogs doit être activé"
|
f__info "$fileLogs doit être activé" "Réinstaller un script plus récent" \
|
||||||
|
"voir $GREEN""$urlNotice#installation-rapide-du-script"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,7 +164,8 @@ f__user(){ # v30/08/2017-4
|
||||||
|
|
||||||
# test wget, $1 url à tester, sortie script, sur erreur ou retour à la normale
|
# test wget, $1 url à tester, sortie script, sur erreur ou retour à la normale
|
||||||
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
|
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
|
||||||
f__wget_test(){ # v31/08/2017
|
# si $2=loc affiche seulement location
|
||||||
|
f__wget_test(){ # v07/09/2017
|
||||||
local file_test_wget retourWget retourHttp location
|
local file_test_wget retourWget retourHttp location
|
||||||
file_test_wget="/tmp/testWget-$RANDOM"
|
file_test_wget="/tmp/testWget-$RANDOM"
|
||||||
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" || retourWget="$?"
|
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" || retourWget="$?"
|
||||||
|
@ -177,11 +179,22 @@ f__wget_test(){ # v31/08/2017
|
||||||
[ "$retourWget" == 8 ] && retourWget="réponse serveur en erreur"
|
[ "$retourWget" == 8 ] && retourWget="réponse serveur en erreur"
|
||||||
retourHttp="$(grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs)"
|
retourHttp="$(grep -i 'HTTP/' "$file_test_wget" | tr -d '\n' | xargs)"
|
||||||
location="$(grep -i 'location' $file_test_wget | xargs)"
|
location="$(grep -i 'location' $file_test_wget | xargs)"
|
||||||
if [ "$2" == "print" ] && [ -z "$retourWget" ]; then
|
if [ "$2" == "print" ]; then
|
||||||
echo -e "\n$BLUE$1"
|
if [ "$retourWget" ]; then
|
||||||
echo "$GREEN$retourHttp$COLOR"
|
echo "erreur wget: $RED$retourWget$COLOR"
|
||||||
[ "$location" ] && echo "$YELLOW$location"
|
echo -e "$BLUE $1$COLOR\t$RED $retourHttp$COLOR"
|
||||||
echo "$COLOR"
|
[ "$location" ] && echo "$YELLOW $location" || echo "$YELLOW no location"
|
||||||
|
echo "$COLOR"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
echo -e "$BLUE $1$COLOR\t$GREEN $retourHttp$YELLOW"
|
||||||
|
[ "$location" ] && echo "$YELLOW $location" || echo "$YELLOW no location"
|
||||||
|
echo "$COLOR"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$2" == "loc" ]; then
|
||||||
|
[ "$location" ] && echo "$location" || echo "no location"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
if [ "$retourWget" ]; then
|
if [ "$retourWget" ]; then
|
||||||
|
@ -195,25 +208,26 @@ f__wget_test(){ # v31/08/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# affichage help
|
# affichage help
|
||||||
f_help(){ # v02/09/2017
|
f_help(){ # v09/09/2017
|
||||||
printf $BLUE
|
printf $BLUE
|
||||||
cat << 'EOF'
|
cat << 'EOF'
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
canaux possibles latest, beta, nightly, dev, esr, tor
|
canaux possibles: latest, beta, nightly, dev, esr, tor
|
||||||
all = latest, beta, nightly
|
<all> = latest, beta, nightly
|
||||||
|
|
||||||
exemple, installation version Release: getFirefox i-latest
|
exemple, installation version Release (latest): getFirefox i-latest
|
||||||
installation version latest, beta, nightly: getFirefox i-all
|
installation version latest, beta, nightly: getFirefox i-all
|
||||||
installation Tor Browser: getFirefox i-tor
|
installation Tor Browser: getFirefox i-tor
|
||||||
|
|
||||||
getFirefox i-canal : installation de Firefox <canal>
|
getFirefox i-canal : installation de Firefox <canal> (<all> possible)
|
||||||
getFirefox r-canal : désinstallation de Firefox <canal>
|
getFirefox r-canal : désinstallation de Firefox <canal> (<all> possible)
|
||||||
getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours
|
getFirefox u-canal : ajouter ou configurer un profil firefox pour l'utilisateur en cours
|
||||||
|
getFirefox d-canal : copier un profil default existant sur <canal> (<all> possible)
|
||||||
|
|
||||||
getFirefox m-canal : installation sur le <canal> d'une archive téléchargée manuellement
|
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 p-canal : personnalisation sur le <canal> de user.js & userChrome.css (<all> possible)
|
||||||
getFirefox pu : mise à jour (des) personnalisation(s) installée(s) Firefox et Tor Browser
|
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 pr-canal : suppression personnalisation sur le <canal> de user.js & userChrome.css (<all> possible)
|
||||||
|
|
||||||
getFirefox version : version(s) installée(s) et en ligne des différents canaux Firefox
|
getFirefox version : version(s) installée(s) et en ligne des différents canaux Firefox
|
||||||
Tor Browser, version script et personnalisation
|
Tor Browser, version script et personnalisation
|
||||||
|
@ -230,7 +244,7 @@ cat << 'EOF'
|
||||||
Si présent, le *paquet Debian* firefox-esr ou firefox devrait être désinstallé
|
Si présent, le *paquet Debian* firefox-esr ou firefox devrait être désinstallé
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
EOF
|
EOF
|
||||||
echo -e " plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/scripts/getFirefox$COLOR\n"
|
echo -e " plus d'infos: $GREEN$urlNotice$COLOR\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
# assigne $verTorOnline
|
# assigne $verTorOnline
|
||||||
|
@ -253,13 +267,13 @@ f_tb_get_version(){ # v06/09/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# installation TorBrowser, [$1 manuel, $2 archive]
|
# installation TorBrowser, [$1 manuel, $2 archive]
|
||||||
f_tb_install(){ # v06/09/2017
|
f_tb_install(){ # v07/09/2017
|
||||||
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour installer Tor Browser"
|
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour installer Tor Browser"
|
||||||
[ "$verTorOnline" ] || f_tb_get_version
|
[ "$verTorOnline" ] || f_tb_get_version
|
||||||
local dirTemp archi fileTemp recup_urlTb
|
local dirTemp archi fileTemp recup_urlTb verArchive fileDesktop
|
||||||
if [ "$1" == "manuel" ]; then
|
if [ "$1" == "manuel" ]; then
|
||||||
versionArchive="$(sed -En 's/tor-browser-linux[0-9]{2}-([0-9.]*)_fr\.tar\.xz/\1/p' <<< $(basename $2))"
|
verArchive="$(sed -En 's/.*tor-browser-linux[0-9]{2}-(.*)\.tar\.xz.*$/\1/p' <<< $(basename $2))"
|
||||||
f__info "installation manuelle de Tor Browser version $versionArchive ($2)"
|
f__info "installation manuelle de Tor Browser version $verArchive ($2)"
|
||||||
dirTemp="$(dirname $2)/$script-$RANDOM"
|
dirTemp="$(dirname $2)/$script-$RANDOM"
|
||||||
fileTemp="$(basename $2)"
|
fileTemp="$(basename $2)"
|
||||||
mkdir -p "$dirTemp"
|
mkdir -p "$dirTemp"
|
||||||
|
@ -289,13 +303,13 @@ f_tb_install(){ # v06/09/2017
|
||||||
chmod -R g+wrs,a+r "$dirInstallTB/"
|
chmod -R g+wrs,a+r "$dirInstallTB/"
|
||||||
rm -rf "$dirTemp/"
|
rm -rf "$dirTemp/"
|
||||||
f_tb_lanceur_desktop
|
f_tb_lanceur_desktop
|
||||||
local fileDesktop="/usr/share/applications/tor-browser.desktop"
|
fileDesktop="/usr/share/applications/tor-browser.desktop"
|
||||||
# lien dans /usr/bin
|
# lien dans /usr/bin
|
||||||
ln -sf "$fileDesktop" "/usr/bin/tor-browser"
|
ln -sf "$fileDesktop" "/usr/bin/tor-browser"
|
||||||
# lien icône
|
# lien icône
|
||||||
ln -sf "$dirInstallTB/Browser/browser/chrome/icons/default/default48.png" "/usr/share/pixmaps/tor-browser.png"
|
ln -sf "$dirInstallTB/Browser/browser/chrome/icons/default/default48.png" "/usr/share/pixmaps/tor-browser.png"
|
||||||
if [ "$1" == "manuel" ]; then
|
if [ "$1" == "manuel" ]; then
|
||||||
f__info "log" "archive Tor Browser $versionArchive installée"
|
f__info "log" "archive Tor Browser $verArchive installée"
|
||||||
else
|
else
|
||||||
f__info "log" "Tor Browser installé $verTorOnline"
|
f__info "log" "Tor Browser installé $verTorOnline"
|
||||||
fi
|
fi
|
||||||
|
@ -423,7 +437,7 @@ f_tb_pers_upgrade(){ # v06/09/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# désinstallation de Tor Browser
|
# désinstallation de Tor Browser
|
||||||
f_tb_remove(){ # v06/09/2017
|
f_tb_remove(){ # v08/09/2017
|
||||||
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour désinstaller Tor Browser"
|
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour désinstaller Tor Browser"
|
||||||
if [ ! -d "$dirInstallTB/" ]; then
|
if [ ! -d "$dirInstallTB/" ]; then
|
||||||
f__info "$GREEN""Tor Browser n'est pas installé."
|
f__info "$GREEN""Tor Browser n'est pas installé."
|
||||||
|
@ -431,7 +445,7 @@ f_tb_remove(){ # v06/09/2017
|
||||||
fi
|
fi
|
||||||
local fileDesktop="/usr/share/applications/tor-browser.desktop"
|
local fileDesktop="/usr/share/applications/tor-browser.desktop"
|
||||||
# suppression lien dans /usr/bin
|
# suppression lien dans /usr/bin
|
||||||
unlink "$fileDesktop" "/usr/bin/tor-browser" &>/dev/null
|
unlink "/usr/bin/tor-browser" &>/dev/null
|
||||||
# suppression lien icône
|
# suppression lien icône
|
||||||
unlink "/usr/share/pixmaps/tor-browser.png" &>/dev/null
|
unlink "/usr/share/pixmaps/tor-browser.png" &>/dev/null
|
||||||
# supression .desktop
|
# supression .desktop
|
||||||
|
@ -441,6 +455,24 @@ f_tb_remove(){ # v06/09/2017
|
||||||
f__info "log" "Tor Browser désinstallé"
|
f__info "log" "Tor Browser désinstallé"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# copie du répertoire défault dans canal, $1=canal
|
||||||
|
ffx_default(){ # v09/09/2017
|
||||||
|
local canal="$1" profileDefault
|
||||||
|
f__info "copie d'un profil default sur $canal"
|
||||||
|
[ -d "$dirProfil/$canal" ] || mkdir -p "$dirProfil/$canal" # répertoire du profil
|
||||||
|
# recherche éventuel profil 123wxyz.default dans profile.ini
|
||||||
|
profileDefault="$(sed -En 's/Path=(.*\.default).*$/\1/p' $fileProfileIni)"
|
||||||
|
# si profileDefault existant, on l'utilise pour canal
|
||||||
|
if [ "$profileDefault" ] && [ -d "$dirProfil/$profileDefault" ]; then
|
||||||
|
cp -R "$dirProfil/$profileDefault"/* "$dirProfil/$canal/"
|
||||||
|
chown -R "$user_:" "$dirProfil/$canal/" # propriété du répertoire profil à l'user
|
||||||
|
chmod g-rx,o-rx "$dirProfil/$canal/" # droits répertoire
|
||||||
|
f__info "copie du profil default <$profileDefault> sur $canal"
|
||||||
|
else
|
||||||
|
f__info "pas de profil default existant, opération abandonnée"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# détermination canal bas Firefox installé, assigne $firefoxCanalBas
|
# détermination canal bas Firefox installé, assigne $firefoxCanalBas
|
||||||
ffx_get_canalBas(){
|
ffx_get_canalBas(){
|
||||||
for ii in nightly dev beta esr latest; do
|
for ii in nightly dev beta esr latest; do
|
||||||
|
@ -450,7 +482,7 @@ ffx_get_canalBas(){
|
||||||
}
|
}
|
||||||
|
|
||||||
# version Firefox en ligne
|
# version Firefox en ligne
|
||||||
ffx_get_versionsFF(){ # v06/09/2017
|
ffx_get_versionsFF(){ # v07/09/2017
|
||||||
local fileTmp recup_url verLatest verEsr verBeta verNightly verFFxInstall tabEspaces=" "
|
local fileTmp recup_url verLatest verEsr verBeta verNightly verFFxInstall tabEspaces=" "
|
||||||
printf "."
|
printf "."
|
||||||
fileTmp="/tmp/getFirefox-wgetVer-$RANDOM"
|
fileTmp="/tmp/getFirefox-wgetVer-$RANDOM"
|
||||||
|
@ -484,8 +516,9 @@ ffx_get_versionsFF(){ # v06/09/2017
|
||||||
[ "$verBeta" ] || verBeta="$RED""NA"
|
[ "$verBeta" ] || verBeta="$RED""NA"
|
||||||
[ "$verNightly" ] || verNightly="$RED""NA"
|
[ "$verNightly" ] || verNightly="$RED""NA"
|
||||||
[ "$verEsr" ] || verEsr="$RED""NA"
|
[ "$verEsr" ] || verEsr="$RED""NA"
|
||||||
f__info "raw" "version Firefox installé(s): $GREEN$verFFxInstall$COLOR"
|
[ "$verFFxInstall" ] || verFFxInstall="$RED""aucune(s)"
|
||||||
f__info "version Firefox en ligne: $YELLOW""Release: $verLatest$tabEspaces""Beta/dev: $verBeta$tabEspaces""Nightly: $verNightly$tabEspaces""ESR: $verEsr$COLORS"
|
f__info "raw" "version(s) Firefox installé(s): $GREEN$verFFxInstall$COLOR"
|
||||||
|
f__info "versions Firefox en ligne: $YELLOW""latest: $verLatest$tabEspaces""beta/dev: $verBeta$tabEspaces""nightly: $verNightly$tabEspaces""esr: $verEsr$COLORS"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ascii art godzilla; ligne vide finale
|
# ascii art godzilla; ligne vide finale
|
||||||
|
@ -510,13 +543,12 @@ echo "$COLOR"
|
||||||
}
|
}
|
||||||
|
|
||||||
# installation Firefox, $1 produit, $2 manuel, $3 archive
|
# installation Firefox, $1 produit, $2 manuel, $3 archive
|
||||||
ffx_install(){ # v06/09/2017
|
ffx_install(){ # v08/09/2017
|
||||||
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour installer Firefox"
|
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour installer Firefox"
|
||||||
local versionArchive dirTemp fileTemp produit
|
local verArchive dirTemp fileTemp produit="$1"
|
||||||
produit="$1"
|
|
||||||
if [ "$2" == "manuel" ]; then
|
if [ "$2" == "manuel" ]; then
|
||||||
versionArchive="$(sed -E 's/firefox-(.*)\.linux.*/\1/' <<< $(basename $3))"
|
verArchive="$(sed -E 's/.*firefox-(.*)\.linux.*$/\1/' <<< $(basename $3))"
|
||||||
f__info "installation manuelle dans $produit de firefox version $versionArchive ($3)"
|
f__info "installation manuelle dans $produit de firefox version $verArchive ($3)"
|
||||||
dirTemp="$(dirname $3)/$script-$RANDOM"
|
dirTemp="$(dirname $3)/$script-$RANDOM"
|
||||||
fileTemp="$(basename $3)"
|
fileTemp="$(basename $3)"
|
||||||
mkdir -p "$dirTemp"
|
mkdir -p "$dirTemp"
|
||||||
|
@ -547,6 +579,9 @@ ffx_install(){ # v06/09/2017
|
||||||
rm -rf "$dirTemp/"
|
rm -rf "$dirTemp/"
|
||||||
# lien icône Firefox
|
# lien icône Firefox
|
||||||
ln -sf "$dirInstall$produit/browser/chrome/icons/default/default48.png" "/usr/share/pixmaps/firefox-$produit.png"
|
ln -sf "$dirInstall$produit/browser/chrome/icons/default/default48.png" "/usr/share/pixmaps/firefox-$produit.png"
|
||||||
|
# gestion liens lanceurs paquet debian éventuels
|
||||||
|
[ -h "/usr/bin/firefox-esr" ] && unlink "/usr/bin/firefox-esr"
|
||||||
|
[ -h "/usr/bin/firefox" ] && unlink "/usr/bin/firefox"
|
||||||
# lanceur dans /usr/bin
|
# lanceur dans /usr/bin
|
||||||
echo '#!/bin/sh' > "/usr/bin/firefox-$produit"
|
echo '#!/bin/sh' > "/usr/bin/firefox-$produit"
|
||||||
echo >> "/usr/bin/firefox-$produit"
|
echo >> "/usr/bin/firefox-$produit"
|
||||||
|
@ -558,7 +593,7 @@ ffx_install(){ # v06/09/2017
|
||||||
# traitement user
|
# traitement user
|
||||||
ffx_profil_user
|
ffx_profil_user
|
||||||
if [ "$2" == "manuel" ]; then
|
if [ "$2" == "manuel" ]; then
|
||||||
f__info "log" "archive Firefox-$produit $versionArchive installée"
|
f__info "log" "archive Firefox-$produit $verArchive installée"
|
||||||
else
|
else
|
||||||
f__info "log" "Firefox-$produit installé"
|
f__info "log" "Firefox-$produit installé"
|
||||||
fi
|
fi
|
||||||
|
@ -574,7 +609,7 @@ ffx_install_manuel(){ # v30/08/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# création lanceur.desktop
|
# création lanceur.desktop
|
||||||
ffx_lanceur_desktop(){
|
ffx_lanceur_desktop(){ #v06/2017
|
||||||
local fileDesktop="/usr/share/applications/firefox-$produit.desktop"
|
local fileDesktop="/usr/share/applications/firefox-$produit.desktop"
|
||||||
echo "#!/usr/bin/env xdg-open" > "$fileDesktop"
|
echo "#!/usr/bin/env xdg-open" > "$fileDesktop"
|
||||||
echo "[Desktop Entry]" >> "$fileDesktop"
|
echo "[Desktop Entry]" >> "$fileDesktop"
|
||||||
|
@ -687,42 +722,24 @@ ffx_pers_upgrade(){ # v06/09/2017
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# traitement de profile.ini, inscription si pas déjà existante
|
|
||||||
ffx_profilIni_inscription(){
|
|
||||||
# si déjà profil existant dans profil.ini, sortir
|
|
||||||
if [ "$(grep -c Name=$produit $fileProfileIni)" != 0 ]; then return; fi
|
|
||||||
# comptage profils existants
|
|
||||||
local nbProfiles="$(grep -Ec '\[Profile[0-9]+\]' $fileProfileIni)"
|
|
||||||
# création profil dans profile.ini
|
|
||||||
echo "" >> "$fileProfileIni"
|
|
||||||
echo "[Profile$nbProfiles]" >> "$fileProfileIni"
|
|
||||||
echo "Name=$produit" >> "$fileProfileIni"
|
|
||||||
echo "IsRelative=1" >> "$fileProfileIni"
|
|
||||||
echo "Path=$produit" >> "$fileProfileIni"
|
|
||||||
# si latest ou esr, attribuer Default=1
|
|
||||||
if [ "$produit" == "latest" ] || [ "$produit" == "esr" ]; then
|
|
||||||
sed -i 's/Default=1//' "$fileProfileIni"
|
|
||||||
echo "Default=1" >> "$fileProfileIni"
|
|
||||||
else echo "" >> "$fileProfileIni"; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# traitement utilisateur, $1=user si appel indépendant pour reconfiguration
|
# traitement utilisateur, $1=user si appel indépendant pour reconfiguration
|
||||||
ffx_profil_user(){ # v06/09/2017
|
ffx_profil_user(){ # v08/09/2017
|
||||||
|
local profileDefault nbProfiles
|
||||||
if [ "$1" == "user" ] && [ ! -x "/usr/bin/firefox-$produit" ]; then
|
if [ "$1" == "user" ] && [ ! -x "/usr/bin/firefox-$produit" ]; then
|
||||||
f__error "firefox <$produit> n'est pas installé" " il faut donc utiliser l'installation et pas l'ajout d'un nouveau profil"
|
f__error "firefox <$produit> n'est pas installé" " il faut donc utiliser l'installation et pas l'ajout d'un nouveau profil"
|
||||||
fi
|
fi
|
||||||
if [ -w "$fileProfileIni" ]; then # si profile.ini existe et rw, on traite default
|
if [ -w "$fileProfileIni" ]; then # si profile.ini existe et rw, on traite default
|
||||||
# recherche éventuel profil tuvwxyz.default dans profile.ini
|
# recherche éventuel profil 123wxyz.default dans profile.ini
|
||||||
local profileDefault="$(grep '\.default' $fileProfileIni | sed 's/Path=//')"
|
profileDefault="$(sed -En 's/Path=(.*\.default).*$/\1/p' $fileProfileIni)"
|
||||||
# si profileDefault existant, on l'utilise pour latest (ou esr) si pas déjà présent
|
# si profileDefault existant, on l'utilise pour latest (ou esr) si pas déjà présent
|
||||||
if [ "$profileDefault" ] && [ -d "$dirProfil/$profileDefault" ] && [ "$produit" == "latest" ] || [ "$produit" == "esr" ]; then
|
if [ "$profileDefault" ] && [ -d "$dirProfil/$profileDefault" ] && [ "$produit" == "latest" ] || [ "$produit" == "esr" ]; then
|
||||||
if [ ! -d "$dirProfil/$produit" ]; then # le profil cible n'existe pas
|
if [ ! -d "$dirProfil/$produit" ]; then # le profil cible n'existe pas sinon on écrase pas avec default
|
||||||
f__info " - récupération du profil default existant <$profileDefault>"
|
f__info " - récupération du profil default existant <$profileDefault>"
|
||||||
mkdir -p "$dirProfil/$produit"
|
mkdir -p "$dirProfil/$produit"
|
||||||
cp -R "$dirProfil/$profileDefault"/* "$dirProfil/$produit/"
|
cp -R "$dirProfil/$profileDefault"/* "$dirProfil/$produit/"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else # sinon on crée profile.ini avec minimum d'entête (première installation Firefox)
|
else # sinon on crée profile.ini avec minimum d'entête (première installation Firefox)
|
||||||
echo -e "[General]\nStartWithLastProfile=1\n\n" >> "$fileProfileIni"
|
echo -e "[General]\nStartWithLastProfile=1\n\n" >> "$fileProfileIni"
|
||||||
chown "$user_:" "$fileProfileIni" # propriété du fichier profile.ini à l'user
|
chown "$user_:" "$fileProfileIni" # propriété du fichier profile.ini à l'user
|
||||||
chmod u+rw,go+r "$fileProfileIni" # permissions du fichier profile.ini à l'user
|
chmod u+rw,go+r "$fileProfileIni" # permissions du fichier profile.ini à l'user
|
||||||
|
@ -730,7 +747,23 @@ ffx_profil_user(){ # v06/09/2017
|
||||||
mkdir -p "$dirProfil/$produit" # répertoire du profil
|
mkdir -p "$dirProfil/$produit" # répertoire du profil
|
||||||
chown -R "$user_:" "$dirProfil/$produit/" # propriété du répertoire profil à l'user
|
chown -R "$user_:" "$dirProfil/$produit/" # propriété du répertoire profil à l'user
|
||||||
chmod g-rx,o-rx "$dirProfil/$produit/" # droits répertoire comme Firefox officiel
|
chmod g-rx,o-rx "$dirProfil/$produit/" # droits répertoire comme Firefox officiel
|
||||||
ffx_profilIni_inscription
|
## inscription dans profil.ini
|
||||||
|
# si profil pas déjà existant dans profil.ini
|
||||||
|
if [ "$(grep -c Name=$produit $fileProfileIni)" == 0 ]; then
|
||||||
|
# comptage profils existants
|
||||||
|
nbProfiles="$(grep -Ec '\[Profile[0-9]+\]' $fileProfileIni)"
|
||||||
|
# création profil dans profile.ini
|
||||||
|
echo >> "$fileProfileIni"
|
||||||
|
echo "[Profile$nbProfiles]" >> "$fileProfileIni"
|
||||||
|
echo "Name=$produit" >> "$fileProfileIni"
|
||||||
|
echo "IsRelative=1" >> "$fileProfileIni"
|
||||||
|
echo "Path=$produit" >> "$fileProfileIni"
|
||||||
|
# si latest ou esr, attribuer Default=1
|
||||||
|
if [ "$produit" == "latest" ] || [ "$produit" == "esr" ]; then
|
||||||
|
sed -i '/Default=1/d' "$fileProfileIni"
|
||||||
|
echo "Default=1" >> "$fileProfileIni"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if [ "$1" != "user" ]; then
|
if [ "$1" != "user" ]; then
|
||||||
ffx_lanceur_desktop
|
ffx_lanceur_desktop
|
||||||
ffx_update_alternatives
|
ffx_update_alternatives
|
||||||
|
@ -739,7 +772,7 @@ ffx_profil_user(){ # v06/09/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# calcul url téléchargement, assigne $recup_url
|
# calcul url téléchargement, assigne $recup_url
|
||||||
ffx_recup_url(){
|
ffx_recup_url(){ #v06/2017
|
||||||
if [ "$produit" == "latest" ]; then
|
if [ "$produit" == "latest" ]; then
|
||||||
recup_url="https://download.mozilla.org/?product=firefox-$produit&os=$architecture&lang=fr"
|
recup_url="https://download.mozilla.org/?product=firefox-$produit&os=$architecture&lang=fr"
|
||||||
elif [ "$produit" == "esr" ] || [ "$produit" == "beta" ]; then
|
elif [ "$produit" == "esr" ] || [ "$produit" == "beta" ]; then
|
||||||
|
@ -751,27 +784,28 @@ ffx_recup_url(){
|
||||||
}
|
}
|
||||||
|
|
||||||
# désinstallation de Firefox, on laisse le profil user
|
# désinstallation de Firefox, on laisse le profil user
|
||||||
ffx_remove(){ # v06/09/2017
|
ffx_remove(){ # v08/09/2017
|
||||||
|
local canal="$1"
|
||||||
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour désinstaller firefox"
|
[ "$EUID" -eq 0 ] || f__error "vous devez être ROOT pour désinstaller firefox"
|
||||||
killall "/opt/usr/share/firefox-$produit/firefox" &>/dev/null
|
killall "/opt/usr/share/firefox-$canal/firefox" &>/dev/null
|
||||||
# si pas de lanceur desktop, on considère que ce canal Firefox n'est pas installé, retour
|
# si pas de lanceur desktop, on considère que ce canal Firefox n'est pas installé, retour
|
||||||
if [ ! -e "/usr/share/applications/firefox-$produit.desktop" ]; then # si test répertoire, on détecterait pas l'ancien répertoire éventuel
|
if [ ! -e "/usr/share/applications/firefox-$canal.desktop" ]; then # si test répertoire, on détecterait pas l'ancien répertoire éventuel
|
||||||
f__info "$GREEN""Firefox-$produit n'est pas installé."
|
f__info "$BLUE""Firefox-$canal n'est pas installé."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
# suppression du répertoire Firefox
|
# suppression du répertoire Firefox
|
||||||
rm -rf "/opt/firefox-$produit/" # ancien répertoire éventuel
|
rm -rf "/opt/firefox-$canal/" # ancien répertoire éventuel
|
||||||
rm -rf "$dirInstall$produit/"
|
rm -rf "$dirInstall$canal/"
|
||||||
# suppression lanceurs
|
# suppression lanceurs
|
||||||
rm -f "/usr/share/applications/firefox-$produit.desktop"
|
rm -f "/usr/share/applications/firefox-$canal.desktop"
|
||||||
rm -f "/usr/bin/firefox-$produit"
|
rm -f "/usr/bin/firefox-$canal"
|
||||||
# suppression des liens
|
# suppression des liens
|
||||||
unlink "/usr/share/pixmaps/firefox-$produit.png" &>/dev/null
|
unlink "/usr/share/pixmaps/firefox-$canal.png" &>/dev/null
|
||||||
unlink "/usr/bin/firefox-$produit" &>/dev/null
|
unlink "/usr/bin/firefox" &>/dev/null
|
||||||
# recréation lanceur Firefox & update-alternatives
|
# recréation lanceur Firefox & update-alternatives
|
||||||
ffx_usr_bin
|
ffx_usr_bin
|
||||||
ffx_update_alternatives
|
ffx_update_alternatives
|
||||||
f__info "log" "Firefox-$produit désinstallé, mais le profil est toujours en place" \
|
f__info "log" "Firefox-$canal désinstallé, mais le profil est toujours en place" \
|
||||||
"\tle supprimer manuellement si nécessaire, pour cela:" \
|
"\tle supprimer manuellement si nécessaire, pour cela:" \
|
||||||
"fermer toutes les instances ouvertes de firefox" \
|
"fermer toutes les instances ouvertes de firefox" \
|
||||||
"et lancer en console, en user:$GREEN firefox -P$COLOR"
|
"et lancer en console, en user:$GREEN firefox -P$COLOR"
|
||||||
|
@ -779,7 +813,7 @@ ffx_remove(){ # v06/09/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# traitement update-alternatives
|
# traitement update-alternatives
|
||||||
ffx_update_alternatives(){
|
ffx_update_alternatives(){ #v06/2017
|
||||||
[ "$(which update-alternatives)" ] || return 0 # update-alternatives n'est pas sur cette distrib
|
[ "$(which update-alternatives)" ] || return 0 # update-alternatives n'est pas sur cette distrib
|
||||||
if ffx_get_canalBas ; then
|
if ffx_get_canalBas ; then
|
||||||
update-alternatives --quiet --install /usr/bin/firefox x-www-browser "/usr/bin/firefox-$firefoxCanalBas" 100
|
update-alternatives --quiet --install /usr/bin/firefox x-www-browser "/usr/bin/firefox-$firefoxCanalBas" 100
|
||||||
|
@ -791,8 +825,8 @@ ffx_update_alternatives(){
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# lien /usr/bin/firefox pour le plus bas canal Firefox installé, utile si update-alternatives pas fonctionnel
|
# lien /usr/bin/firefox pour le plus bas canal Firefox installé
|
||||||
ffx_usr_bin(){
|
ffx_usr_bin(){ # v08/09/2017
|
||||||
if ffx_get_canalBas ; then
|
if ffx_get_canalBas ; then
|
||||||
ln -sf "/usr/bin/firefox-$firefoxCanalBas" "/usr/bin/firefox"
|
ln -sf "/usr/bin/firefox-$firefoxCanalBas" "/usr/bin/firefox"
|
||||||
f__info " - firefox lié à firefox-$firefoxCanalBas"
|
f__info " - firefox lié à firefox-$firefoxCanalBas"
|
||||||
|
@ -841,7 +875,7 @@ fscript_cronAnacron_special(){ # v19/08/2017
|
||||||
}
|
}
|
||||||
|
|
||||||
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
|
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
|
||||||
fscript_get_version(){ # v01/09/2017
|
fscript_get_version(){ # v07/09/2017
|
||||||
f__info "raw" "$GREEN""version script en cours: $version"
|
f__info "raw" "$GREEN""version script en cours: $version"
|
||||||
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
|
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
|
||||||
if [ "$versionScript" ]; then
|
if [ "$versionScript" ]; then
|
||||||
|
@ -852,7 +886,7 @@ fscript_get_version(){ # v01/09/2017
|
||||||
f__info "version script en ligne: $versionScript"
|
f__info "version script en ligne: $versionScript"
|
||||||
script_aJour="ok"
|
script_aJour="ok"
|
||||||
fi
|
fi
|
||||||
else f__info "version script en ligne non accessible"; fi
|
else f__info "version script en ligne $RED""non accessible"; fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# installation du script dans le système
|
# installation du script dans le système
|
||||||
|
@ -968,20 +1002,19 @@ else
|
||||||
if [ ! -w "$fileLogs" ] && ls -d "$dirInstall"* &>/dev/null ; then problemDetected+="-2"; fi # ancien système de logs via syslog
|
if [ ! -w "$fileLogs" ] && ls -d "$dirInstall"* &>/dev/null ; then problemDetected+="-2"; fi # ancien système de logs via syslog
|
||||||
fi
|
fi
|
||||||
[ "$problemDetected" ] && f__info "$RED""l'installation du script est obsolète ($problemDetected)" \
|
[ "$problemDetected" ] && f__info "$RED""l'installation du script est obsolète ($problemDetected)" \
|
||||||
"veuillez réinstaller le script manuellement" "$GREEN""voir $urlNotice""#installation-rapide-du-script"
|
"veuillez réinstaller le script manuellement" "$GREEN""voir $urlNotice#messages-avertissement"
|
||||||
|
|
||||||
for i in $options; do
|
for i in $options; do
|
||||||
[ -z "$i" ] && echo 'i zero'
|
|
||||||
case $i in
|
case $i in
|
||||||
i-latest | i-esr | i-dev | i-beta | i-nightly | i-all | +latest | +esr | +dev | +beta | +nightly | +all )
|
i-latest | i-esr | i-dev | i-beta | i-nightly | i-all | +latest | +esr | +dev | +beta | +nightly | +all )
|
||||||
produit="$(sed 's/i-//; s/+//' <<< "$1")"
|
produit="$(sed 's/i-//; s/+//' <<< "$1")"
|
||||||
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
||||||
for i in $produit; do ffx_install "$i"; done
|
for i in $produit; do ffx_install "$i"; done
|
||||||
exit ;; # install: installation canal Firefox $1 produit, (gestion ancien répertoire éventuel)
|
exit ;; # install: installation canal Firefox $1=produit, (gestion ancien répertoire éventuel)
|
||||||
m-latest | m-esr | m-dev | m-beta | m-nightly )
|
m-latest | m-esr | m-dev | m-beta | m-nightly )
|
||||||
produit="$(sed 's/m-//' <<< "$1")"
|
produit="$(sed 's/m-//' <<< "$1")"
|
||||||
ffx_install_manuel "$produit" "$2"
|
ffx_install_manuel "$produit" "$2"
|
||||||
exit ;; # installation manuelle d'un chargement, $2 fichier archive
|
exit ;; # installation manuelle d'un chargement, $2=fichier archive
|
||||||
p-latest | p-esr | p-dev | p-beta | p-nightly | p-all )
|
p-latest | p-esr | p-dev | p-beta | p-nightly | p-all )
|
||||||
produit="$(sed 's/p-//' <<< "$1")"
|
produit="$(sed 's/p-//' <<< "$1")"
|
||||||
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
||||||
|
@ -996,15 +1029,22 @@ for i in $options; do
|
||||||
ffx_pers_upgrade
|
ffx_pers_upgrade
|
||||||
f_tb_pers_upgrade
|
f_tb_pers_upgrade
|
||||||
exit ;; # mise à jour personnalisations
|
exit ;; # mise à jour personnalisations
|
||||||
r-latest | r-esr | r-dev | r-beta | r-nightly | -latest | -esr | -dev | -beta | -nightly )
|
r-latest | r-esr | r-dev | r-beta | r-nightly | r-all | -latest | -esr | -dev | -beta | -nightly | -all )
|
||||||
produit="$(sed 's/r-//; s/-//' <<< "$1")"
|
produit="$(sed 's/r-//; s/-//' <<< "$1")"
|
||||||
ffx_remove
|
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
||||||
|
for i in $produit; do ffx_remove "$i"; done
|
||||||
exit ;; # remove: désinstallation Firefox (y compris ancien répertoire éventuel)
|
exit ;; # remove: désinstallation Firefox (y compris ancien répertoire éventuel)
|
||||||
u-latest | u-esr | u-dev | u-beta | u-nightly )
|
u-latest | u-esr | u-dev | u-beta | u-nightly )
|
||||||
produit="$(sed 's/u-//' <<< "$1")"
|
produit="$(sed 's/u-//' <<< "$1")"
|
||||||
[ "$problemOldInstall" ] && f__error "vous devez réinstaller firefox auparavant"
|
[ "$problemOldInstall" ] && f__error "vous devez réinstaller firefox auparavant"
|
||||||
ffx_profil_user "user"
|
ffx_profil_user "user"
|
||||||
exit ;; # configurer un profil firefox pour un user
|
exit ;; # configurer un profil firefox pour un user
|
||||||
|
d-latest | d-esr | d-dev | d-beta | d-nightly )
|
||||||
|
produit="$(sed 's/d-//' <<< "$1")"
|
||||||
|
[ "$problemOldInstall" ] && f__error "vous devez réinstaller firefox auparavant"
|
||||||
|
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
|
||||||
|
for i in $produit; do ffx_default "$i"; done
|
||||||
|
exit ;; # copier un profil default sur un canal
|
||||||
version | versions )
|
version | versions )
|
||||||
ffx_get_versionsFF
|
ffx_get_versionsFF
|
||||||
fscript_get_version
|
fscript_get_version
|
||||||
|
|
|
@ -2,6 +2,19 @@
|
||||||
|
|
||||||
## todo
|
## todo
|
||||||
|
|
||||||
|
## 3.7.0 09/09/2017
|
||||||
|
|
||||||
|
* remove ligne test dev
|
||||||
|
* présentation ffx_get_versionsFF
|
||||||
|
* correction f_help
|
||||||
|
* révision f_tb_install, f_tb_install
|
||||||
|
* révision ffx_profil_user, suppression ffx_profilIni_inscription inutile en fonction()
|
||||||
|
* révision f__wget_test, fscript_get_version, f__log
|
||||||
|
* nouveau option all pour remove
|
||||||
|
* mieux: gestion paquet firefox-esr en place
|
||||||
|
* fix bug f_tb_remove, ffx_remove
|
||||||
|
* nouveau ffx_default (copie default sur un canal)
|
||||||
|
|
||||||
## 3.6.2 06/09/2017
|
## 3.6.2 06/09/2017
|
||||||
|
|
||||||
* mineur: présentation version, espaces au lieu de Tabs
|
* mineur: présentation version, espaces au lieu de Tabs
|
||||||
|
|
Loading…
Reference in New Issue