This commit is contained in:
root 2017-08-20 03:10:23 +02:00
parent e204dcd1d1
commit 8921ea8d6e
2 changed files with 69 additions and 58 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.0.7
date="19/08/2017"
version=2.0.8
date="20/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getFirefox"
@ -195,7 +195,7 @@ fscript_cronAnacron(){ # v19/08/2017
}
# mise à jour script si dispo
fscript_dl(){ # v19/08/2017
fscript_dl(){ # v20/08/2017
f__requis "wget"
if [ "$script_aJour" == "ok" ]; then return 0; fi
local dirTemp="/tmp/$script-$RANDOM/"
@ -209,7 +209,6 @@ fscript_dl(){ # v19/08/2017
fscript_cronAnacron "upgrade"
f__info "\n $script mis à jour en version $versionScript"
f__log "$script mis à jour en version $versionScript"
exit 0
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
@ -335,7 +334,8 @@ cat << 'EOF'
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 version : version(s) installée(s) et en ligne des différents canaux Firefox
----------------------------------------------------------------------
./getFirefox : installation du script dans le système
@ -356,19 +356,28 @@ echo -e " plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/s
# installation Firefox
ffx_install(){
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer Firefox"
f__info " - installation Firefox-$produit"
local dirTemp="/tmp/$script-$RANDOM/"
local file="firefox-$produit.$architecture.tar.bz2"
mkdir -p "$dirTemp" # dossier temporaire de travail
# téléchargement & test archive
f__info " - téléchargement..."
ffx_recup_url
wget -q -c --show-progress --tries=2 --timeout=15 --user-agent="$user_agent" -O "$dirTemp$file" "$recup_url"
if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi
f__archive_test "$dirTemp$file" || f__error "Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
# décompression
f__info "\n - décompression..."
tar -xaf "$dirTemp$file" -C "$dirTemp"
if [ "$1" == "manuel" ]; then
local versionArchive="$(sed -E 's/firefox-(.*)\.linux.*/\1/' <<< $(stat -c %n $2))"
f__info "installation manuelle de firefox version $versionArchive ($2)"
local dirTemp="$(dirname $2)/$script-$RANDOM/"
local fileTemp="$(basename $2)"
mkdir -p "$dirTemp"
else
f__info "installation Firefox-$produit"
local dirTemp="/tmp/$script-$RANDOM/"
local fileTemp="$dirTemp""firefox-$produit.$architecture.tar.bz2"
mkdir -p "$dirTemp"
# téléchargement & test archive
f__info " - téléchargement..."
ffx_recup_url
wget -q -c --show-progress --tries=2 --timeout=15 --user-agent="$user_agent" -O "$fileTemp" "$recup_url"
if [ "$?" != "0" ]; then f__wget_test "$recup_url"; fi
f__archive_test "$fileTemp" || f__error "Le fichier $fileTemp n'est pas une archive tar.gz valide"
echo
fi
# décompression archive téléchargée dans dossier de travail
f__info " - décompression..."
tar -xaf "$fileTemp" -C "$dirTemp"
# mise en place finale
f__info " - installation..."
rm -rf "/opt/firefox-$produit/" # effacement ancien répertoire éventuel
@ -389,11 +398,20 @@ ffx_install(){
ffx_usr_bin
# traitement user
ffx_profil_user
f__info "$GREEN""Firefox-$produit installé."
f__log "Firefox-$produit installé"
[ "$versionArchive" ] && local sup="version $versionArchive"
f__info "$GREEN""Firefox-$produit installé"" $sup"
f__log "Firefox-$produit installé"" $sup"
ffx_godzilla
}
# installation d'un FF chargé manuellement, $1
ffx_install_manuel(){
[ -e "$1" ] || f__error "fichier $1 introuvable"
f__archive_test "$1" || f__error "Le fichier $1 n'est pas une archive valide"
ffx_install "manuel" "$1"
[ "$user_" != "$lognameDev" ] && rm "$1" &>/dev/null # si user pas dev, effacement archive
}
# création lanceur.desktop
ffx_lanceur_desktop(){
local fileDesktop="/usr/share/applications/firefox-$produit.desktop"
@ -474,12 +492,10 @@ ffx_profil_user(){
ffx_recup_url(){
if [ "$produit" == "latest" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit&os=$architecture&lang=fr"
elif [ "$produit" == "esr" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit-latest&os=$architecture&lang=fr"
elif [ "$produit" == "beta" ]; then
elif [ "$produit" == "esr" ] || [ "$produit" == "beta" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit-latest&os=$architecture&lang=fr"
elif [ "$produit" == "dev" ]; then
recup_url="https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=$architecture&lang=fr"
recup_url="https://download.mozilla.org/?product=firefox-$produit""edition-latest-ssl&os=$architecture&lang=fr"
elif [ "$produit" == "nightly" ]; then
recup_url="https://download.mozilla.org/?product=firefox-$produit-latest-l10n-ssl&os=$architecture&lang=fr" ;fi
}
@ -551,50 +567,43 @@ 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
options="$@"
options=$@
if [ "$(dirname $0)" == "." ]; then unset options
else
if [ ! -w "$fileLogs" ] && ls -d "$dirInstall"* &>/dev/null ; then problemDetected+="-2"; fi # ancien système de logs via syslog
fi
[ "$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"
for i in "$options"; do
for i in $options; do
case $i in
version | versions ) # affiche versions Firefox en ligne & installées
version | versions )
ffx_get_versionsFF
fscript_get_version
ffx_godzilla
;;
i-latest | i-esr | i-dev | i-beta | i-nightly | \
+latest | +esr | +dev | +beta | +nightly ) # install: installation canal Firefox (gestion ancien répertoire éventuel)
produit="$(echo $1 | sed 's/i-//' | sed 's/+//')"
ffx_install
;;
r-latest | r-esr | r-dev | r-beta | r-nightly | \
-latest | -esr | -dev | -beta | -nightly ) # remove: désinstallation Firefox (y compris ancien répertoire éventuel)
produit="$(echo $1 | sed 's/r-//' | sed 's/-//' )"
ffx_remove
;;
u-latest | u-esr | u-dev | u-beta | u-nightly ) # configurer un profil firefox pour un user
produit="$(echo $1 | sed 's/u-//')"
[ "$problemOldInstall" ] && f__error "vous devriez réinstaller firefox auparavant"
ffx_profil_user "user"
;;
"" ) if ! dirname "$0" | grep -q 'bin' ; then # installation du script dans le système
ffx_godzilla; break ;; # affiche versions Firefox en ligne & installées
i-latest | i-esr | i-dev | i-beta | i-nightly | +latest | +esr | +dev | +beta | +nightly )
produit="$(sed 's/i-//; s/+//' <<< "$1")"
ffx_install; break ;; # install: installation canal Firefox (gestion ancien répertoire éventuel)
m-latest | m-esr | m-dev | m-beta | m-nightly )
produit="$(sed 's/m-//' <<< "$1")"
ffx_install_manuel "$2"; break ;; # installation manuelle d'un chargement, $2 archive, $3 canal à utiliser
r-latest | r-esr | r-dev | r-beta | r-nightly | -latest | -esr | -dev | -beta | -nightly )
produit="$(sed 's/r-//; s/-//' <<< "$1")"
ffx_remove; break ;; # remove: désinstallation Firefox (y compris ancien répertoire éventuel)
u-latest | u-esr | u-dev | u-beta | u-nightly )
produit="$(sed 's/u-//' <<< "$1")"
[ "$problemOldInstall" ] && f__error "vous devez réinstaller firefox auparavant"
ffx_profil_user "user"; break ;; # configurer un profil firefox pour un user
"" ) if ! dirname "$0" | grep -q 'bin' ; then
fscript_install
else ffx_help; fi
;;
-r | --remove | sysremove ) # désinstallation du script
fscript_remove
;;
-u | --upgrade | upgrade ) # upgrade script
else ffx_help; fi ;; # installation du script dans le système
-r | --remove | sysremove )
fscript_remove; break ;; # désinstallation du script
-u | --upgrade | upgrade )
opType="upgrade"
fscript_get_version
fscript_dl
;;
--version | -v | --versions ) fscript_get_version ;; # version du script, en ligne et exécuté
--help | -h | * ) ffx_help ;; # affichage help
fscript_dl; break ;; # upgrade script
-v | --version ) fscript_get_version; break ;; # version du script, en ligne et exécuté
-h | --help | * ) ffx_help; break ;; # affichage help
esac
done

View File

@ -3,18 +3,20 @@
## todo
* install: copie du profil du canal inférieur?
* install archive manuelle?
* pocket
* user.pref (autoplay, ...)
* peaufiner contexte upgrade lors cron (affichage, requis, user)
## 2.0.7 19/08/2017
## 2.0.8 20/08/2017
* maj fscript_cronAnacron & plus de redémarrage service cron inutile & fonction spécifique pour certains scripts
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
* fscript_dl plus de sortie progression download
* fscript_get_version inclut version en cours
* fscript_install mise en page
* install archive manuelle
* révision ffx_install
* plusieurs options lancement possibles
## 2.0.6 18/08/2017