This commit is contained in:
kyodev 2017-08-27 08:52:43 +02:00
parent 4eab422c8a
commit b350252b6f
2 changed files with 36 additions and 29 deletions

View File

@ -1,14 +1,13 @@
#!/bin/bash
version=2.5.0
date="25/08/2017"
version=2.6.0
date="27/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getFirefox"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFirefox/"
urlNotice="https://kyodev.frama.io/kyopages/scripts/getFirefox/"
user_agent="Mozilla/5.0 Firefox"
lognameDev="kyodev"
##### license LPRAB/WTFPL
# auteur: simpledeb
@ -270,7 +269,7 @@ echo -e " plus d'infos:$GREEN https://framagit.org/kyodev/kyopages/raw/master/s
}
# installation Firefox, $1 produit, $2 manuel, $3 archive
ffx_install(){ #v25/08/2017
ffx_install(){ #v27/08/2017
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer Firefox"
if [ "$2" == "manuel" ]; then
local versionArchive="$(sed -E 's/firefox-(.*)\.linux.*/\1/' <<< $(stat -c %n $3))"
@ -315,16 +314,16 @@ ffx_install(){ #v25/08/2017
ffx_usr_bin
# traitement user
ffx_profil_user
f__info "log" "Firefox-$produit installé $2 $versionArchive"
f__info "log" "Firefox-$produit installé $versionArchive"
ffx_godzilla
}
# installation d'un FF chargé manuellement, $1 produit, $2 fichier archive
ffx_install_manuel(){ #v25/08/2017
ffx_install_manuel(){ #v27/08/2017
[ -e "$2" ] || f__error "fichier $1 introuvable"
f__archive_test "$2" || f__error "Le fichier $2 n'est pas une archive valide"
ffx_install "$1" "manuel" "$2"
[ "$user_" != "$lognameDev" ] && rm "$2" &>/dev/null # si user pas dev, effacement archive
[ -e "$fileDev" ] || rm "$2" &>/dev/null ## on efface pas si fileDev (dev)
}
# création lanceur.desktop
@ -528,7 +527,7 @@ ffx_usr_bin(){
}
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){ # v23/08/2017
fscript_cronAnacron(){ # v27/08/2017
[ "$(type -t fscript_cronAnacron_special)" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel
local dirAnacron="/home/$user_/.config/anacron"
local dirSpool="$dirAnacron/spool"
@ -540,8 +539,8 @@ fscript_cronAnacron(){ # v23/08/2017
# table anacron
echo "7 10 $script nice /opt/bin/$script --upgrade 1>/dev/null" > "$fileAnacron" # juste erreurs en syslog
## anacron journalier pour dev logname
if [ "$user_" == "$lognameDev" ]; then
echo "1 00 $script""Dev nice /opt/bin/$script --upgrade 1>/dev/null" >> "$fileAnacron" # juste erreurs en syslog
if [ -e "$fileDev" ]; then
echo "1 00 $script""Dev nice /opt/bin/$script --upgrade 1>/dev/null" >> "$fileAnacron"
fi
# création spool anacron utilisateur
mkdir -p "$dirSpool"
@ -568,7 +567,7 @@ fscript_cronAnacron_special(){ # v19/08/2017
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
fscript_get_version(){ # v25/08/2017
fscript_get_version(){ # v27/08/2017
f__requis "wget"
f__info "raw" "$GREEN""version script en cours: $version"
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
@ -584,10 +583,10 @@ fscript_get_version(){ # v25/08/2017
}
# installation du script dans le système
fscript_install(){ # v25/08/2017
fscript_install(){ # v27/08/2017
[ "$(type -t fscript_install_special)" ] && fscript_install_special # test, si fonction spécifique, appel
if dirname "$0" | grep -q 'bin' ; then
f__info "\n $script $version est déjà installé"
f__info "$RED""$script $version est déjà installé"
return 1
fi
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer ce script dans le système"
@ -603,7 +602,7 @@ fscript_install(){ # v25/08/2017
touch "$fileLogs"
chmod 644 "$fileLogs"
chown "$user_": "$fileLogs" "/opt/bin/$script"
[ -e "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
[ -e "$fileDev" ] || rm "$(basename $0)" &>/dev/null ## on efface pas si fileDev (dev)
f__info "log" "$script $version installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
}
@ -618,7 +617,7 @@ fscript_install_special(){ # v25/08/2017
}
# suppression du script dans le système
fscript_remove(){ # v21/08/2017
fscript_remove(){ # v27/08/2017
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
@ -629,7 +628,7 @@ fscript_remove(){ # v21/08/2017
}
# mise à jour script si dispo
fscript_update(){ # v25/08/2017-2
fscript_update(){ # v26/08/2017
fscript_get_version
if [ "$script_aJour" == "ok" ]; then
f__info "log" "pas de mise à jour disponible pour $script"
@ -656,6 +655,7 @@ f__user || f__error "échec détection user"
f__requis "file tar killall>psmisc" # requis pour fonctionnement programme
fileLogs="/var/log/sdeb_$script.log"
fileDev="fileDev"
dirInstall="/opt/usr/share/firefox-"
dirProfil="/home/$user_/.mozilla/firefox"
fileProfileIni="$dirProfil/profiles.ini"
@ -669,7 +669,7 @@ ls -d /opt/firefox-* &>/dev/null && problemOldInstall="detected" # ancienne loc
[ -e "/opt/bin/$script" ] && [ "$(stat -c %G /opt/bin/$script)" == "root" ] && problemDetected+="-1" # droits inappropriés sur le script, version de dev
options=$@
if [ "$(dirname $0)" == "." ]; then unset options # induira script install
if [ "$(dirname $0)" == "." ]; then options="-i" # script install
else
if [ ! -w "$fileLogs" ] && ls -d "$dirInstall"* &>/dev/null ; then problemDetected+="-2"; fi # ancien système de logs via syslog
fi
@ -677,47 +677,48 @@ fi
"veuillez réinstaller le script manuellement" "$GREEN""voir $urlNotice""#installation-rapide-du-script"
for i in $options; do
[ -z "$i" ] && echo 'i zero'
case $i in
i-latest | i-esr | i-dev | i-beta | i-nightly | i-all | +latest | +esr | +dev | +beta | +nightly | +all )
produit="$(sed 's/i-//; s/+//' <<< "$1")"
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
for i in $produit; do ffx_install "$i"; done
break ;; # 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 )
produit="$(sed 's/m-//' <<< "$1")"
ffx_install_manuel "$produit" "$2"
break ;; # 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 )
produit="$(sed 's/p-//' <<< "$1")"
if [ "$produit" == "all" ]; then produit="$produitAll"; fi
for i in $produit; do ffx_pers_install "$i"; done
break ;; # mise en place personnalisation
exit ;; # mise en place personnalisation
pu )
ffx_pers_upgrade
break ;; # mise à jour personnalisations
exit ;; # mise à jour personnalisations
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)
exit ;; # 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
exit ;; # configurer un profil firefox pour un user
version | versions )
ffx_get_versionsFF
fscript_get_version
ffx_pers_get_version
ffx_godzilla
break ;; # affiche versions Firefox en ligne & installées, script et personnalisation
"" )
exit ;; # affiche versions Firefox en ligne & installées, script et personnalisation
-i )
if ! dirname "$0" | grep -q 'bin' ; then
fscript_install
else ffx_help; fi
break ;; # installation du script dans le système
exit ;; # installation du script dans le système
-r | --remove | sysremove )
fscript_remove
break ;; # désinstallation du script
exit ;; # désinstallation du script
-u | --upgrade | upgrade )
opType="upgrade"
fscript_update
@ -725,10 +726,10 @@ for i in $options; do
exit ;; # upgrade script
-v | --version )
fscript_get_version
break ;; # version du script, en ligne et exécuté
exit ;; # version du script, en ligne et exécuté
-h | --help | * )
ffx_help
break ;; # affichage help
exit ;; # affichage help
esac
done

View File

@ -5,6 +5,12 @@
* install: copie du profil du canal inférieur?
## 2.6.0 27/08/2017
* fix bug install
* fscript_cronAnacron, fscript_install : changement lognameDev ->fileDev
* révision présentation fscript_get_version, fscript_install, fscript_remove
## 2.5.0 26/08/2017
* renommage fscript_dl en fscript_update