getInfo 2.70.0

This commit is contained in:
kyodev 2017-12-18 22:12:44 +01:00
parent 5561162a37
commit 136de39898
2 changed files with 27 additions and 22 deletions

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
version=2.69.0 version=2.70.0
date="18/12/2017" date="18/12/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/"
@ -96,7 +96,7 @@ f__dir(){ # 12/12/2017
} }
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si $opType=upgrade # affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si $opType=upgrade
f__error(){ # 4/12/2017 f__error(){ # 18/12/2017
local depart=1 i local depart=1 i
echo -e "\n$RED $script $version, erreur critique: $1 $STD" echo -e "\n$RED $script $version, erreur critique: $1 $STD"
@ -104,15 +104,15 @@ f__error(){ # 4/12/2017
echo -e " $BLUE${!i}$STD" echo -e " $BLUE${!i}$STD"
done done
echo echo
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi [ "$opType" == "upgrade" ] && f__log "$script $version: $1"
exit 1 exit 1
} }
# affichage des paramètres en bleu, si $1=raw pas de ligne vide à la fin, si $1=log alors uniquement $2 logué # affichage des paramètres en bleu, si $1=raw pas de ligne vide à la fin, si $1=log alors uniquement $2 logué
f__info(){ # 15/10/2017 f__info(){ # 18/12/2017
local depart=1 i local depart=1 i
if [ "$1" == "raw" ] || [ "$1" == "log" ]; then depart=2; fi [[ "$1" == "raw" || "$1" == "log" ]] && depart=2
[ "$1" == "log" ] && f__log "$(sed -E 's/\\t//;s/\\n// ' <<< $2 | xargs )" [ "$1" == "log" ] && f__log "$(sed -E 's/\\t//;s/\\n// ' <<< $2 | xargs )"
for (( i=$depart ; i<=$# ; i++ )); do for (( i=$depart ; i<=$# ; i++ )); do
echo -e " $BLUE${!i}$STD" echo -e " $BLUE${!i}$STD"
@ -171,10 +171,10 @@ f__requis(){ # 4/12/2017
} }
# $1=cmd si $2: nb de tentatives pour s'identifier, sinon 2 tentatives par défaut, suppose bash existant # $1=cmd si $2: nb de tentatives pour s'identifier, sinon 2 tentatives par défaut, suppose bash existant
f__sudo(){ # 4/12/2017 f__sudo(){ # 18/12/2017
local nb=2 sudo isudo toBash local nb=2 sudo isudo toBash
[ $( type -p bash 2>/dev/null ) ] && toBash="$( type -p bash )" || return 2 type -p bash &>/dev/null && toBash=$( type -p bash ) || return 2
# sudo --shell bash équivalent su ? # sudo --shell bash équivalent su ?
if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then
sudo="sudo su --shell $toBash --preserve-environment -c " sudo="sudo su --shell $toBash --preserve-environment -c "
@ -1222,7 +1222,7 @@ fi_ip_pub(){ #v 14/12/2017
done done
} }
fi_journal(){ # 10/12/2017 fi_journal(){ # 18/12/2017
local jctl_boot jctl_alert_k jctl_crit_k jctl_err_k jctl_warn_k jctl_warn_nok jctl_last jctl_size file local jctl_boot jctl_alert_k jctl_crit_k jctl_err_k jctl_warn_k jctl_warn_nok jctl_last jctl_size file
local info_ucode text nb_lignes=25 local info_ucode text nb_lignes=25
local alert_jctl_persist alert_firmBug local alert_jctl_persist alert_firmBug
@ -1242,7 +1242,7 @@ fi_journal(){ # 10/12/2017
LC_ALL=C journalctl --no-pager --no-hostname -b0 -p 4 -n$nb_lignes > $file-last ; \ LC_ALL=C journalctl --no-pager --no-hostname -b0 -p 4 -n$nb_lignes > $file-last ; \
LC_ALL=C journalctl --disk-usage > $file-size ; \ LC_ALL=C journalctl --disk-usage > $file-size ; \
LC_ALL=C journalctl --no-pager --no-hostname -o short-monotonic --boot 0 -k -p6 | grep -i 'microcode: .*updated early' > $file-ucode ; \ LC_ALL=C journalctl --no-pager --no-hostname -o short-monotonic --boot 0 -k -p6 | grep -i 'microcode: .*updated early' > $file-ucode ; \
[ $( type -p dmesg 2>/dev/null ) ] && dmesg -Hk --nopager | grep -i 'Firmware Bug' > $file-firmBug ; \ type -p dmesg &>/dev/null && dmesg -Hk --nopager | grep -i 'Firmware Bug' > $file-firmBug ; \
chown $fu_user: $file-*" chown $fu_user: $file-*"
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
f__info "\n les commandes$GREEN journalctl$RED ont échoué $BLUE(droits root requis, échec authentification?)" \ f__info "\n les commandes$GREEN journalctl$RED ont échoué $BLUE(droits root requis, échec authentification?)" \
@ -3217,7 +3217,7 @@ figet_distrib(){ #v 14/12/2017
} }
# display manager, assigne $fg_dm (liste) ou 'n/a', $fg_dm_actif # display manager, assigne $fg_dm (liste) ou 'n/a', $fg_dm_actif
figet_dm(){ #v1 14/12/2017 figet_dm(){ #v1 18/12/2017
local dm_list="cdm entranced gdm3 gdm qingy kdm ldm lightdm lxdm mdm nodm orthos sddm slim wdm xdm" local dm_list="cdm entranced gdm3 gdm qingy kdm ldm lightdm lxdm mdm nodm orthos sddm slim wdm xdm"
local idm ps systemctl x11 local idm ps systemctl x11
@ -3245,7 +3245,7 @@ figet_dm(){ #v1 14/12/2017
fg_dm_actif="(startx)" fg_dm_actif="(startx)"
fi fi
fg_dm_actif=${fg_dm_actif^} fg_dm_actif=${fg_dm_actif^}
if [[ -z "$fg_dm_actif" && $( type -p systemctl 2>/dev/null ) ]]; then if [ -z "$fg_dm_actif" ] && type -p systemctl &>/dev/null; then
fg_dm_actif=$(grep 'Main PID' <<< $(systemctl status display-manager)) fg_dm_actif=$(grep 'Main PID' <<< $(systemctl status display-manager))
fg_dm_actif=${fg_dm_actif##* } # conservation dernier champs ifs ' ' fg_dm_actif=${fg_dm_actif##* } # conservation dernier champs ifs ' '
fg_dm_actif=${fg_dm_actif/\(/} # suppression ( fg_dm_actif=${fg_dm_actif/\(/} # suppression (
@ -3981,7 +3981,7 @@ fipaste_curl_markdownshare(){ # à tester/finir
fscript_cronAnacron(){ # 4/12/2017 fscript_cronAnacron(){ # 4/12/2017
local dirAnacron dirSpool fileAnacron local dirAnacron dirSpool fileAnacron
[ "$(type -t fscript_cronAnacron_special)" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel [ "$( type -t fscript_cronAnacron_special )" ] && fscript_cronAnacron_special # test, si fonction spécifique, appel
dirAnacron="/home/$fu_user/.config/anacron" dirAnacron="/home/$fu_user/.config/anacron"
dirSpool="$dirAnacron/spool" dirSpool="$dirAnacron/spool"
fileAnacron="$dirAnacron/$script.anacrontab" fileAnacron="$dirAnacron/$script.anacrontab"
@ -4002,7 +4002,7 @@ fscript_cronAnacron(){ # 4/12/2017
# crontab pour activation horaire anacron # crontab pour activation horaire anacron
echo "@hourly $fu_user /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab echo "@hourly $fu_user /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
fi fi
[ "$(grep "$script" /etc/crontab)" ] || echo f__error "inscription crontab" \ [ "$( grep "$script" /etc/crontab )" ] || echo f__error "inscription crontab" \
"certains systèmes semblent poser poser problème, merci de rapporter ce bug à $projet, $contact" "certains systèmes semblent poser poser problème, merci de rapporter ce bug à $projet, $contact"
;; ;;
remove ) remove )
@ -4018,7 +4018,7 @@ fscript_get_version(){ # 5/12/2017
local var_temp local var_temp
f__info "raw" "version script en cours: $GREEN$version" f__info "raw" "version script en cours: $GREEN$version"
versionScript=$(wget -q --timeout=15 -O - "$urlScript" | grep -m1 '^version=' | cut -d'=' -f2) versionScript=$( wget -q --timeout=15 -O - "$urlScript" | grep -m1 '^version=' | cut -d'=' -f2 )
if [ "$versionScript" ]; then if [ "$versionScript" ]; then
if [ "$version" != "$versionScript" ]; then if [ "$version" != "$versionScript" ]; then
[ "$1" == "update" ] && var_temp=", mise à jour en cours" || var_temp=", mise à jour possible" [ "$1" == "update" ] && var_temp=", mise à jour en cours" || var_temp=", mise à jour possible"
@ -4034,6 +4034,7 @@ fscript_get_version(){ # 5/12/2017
# installation du script dans le système # installation du script dans le système
fscript_install(){ # 4/12/2017 fscript_install(){ # 4/12/2017
if grep -q 'bin' <<< "$(dirname $0)" ; then if grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""l'installation dans le système doit se faire depuis un script local $GREEN(./$script -i )" f__info "$RED""l'installation dans le système doit se faire depuis un script local $GREEN(./$script -i )"
return 1 return 1
@ -4043,11 +4044,11 @@ fscript_install(){ # 4/12/2017
f__sudo "exec $0 -i" f__sudo "exec $0 -i"
return $? return $?
fi fi
[ "$(type -t fscript_install_special)" ] && fscript_install_special # test, si fonction spécifique, appel [ "$( type -t fscript_install_special )" ] && fscript_install_special # test, si fonction spécifique, appel
f__requis "wget anacron cron" || exit 1 f__requis "wget anacron cron" || exit 1
# install /opt # install /opt
mkdir -p /opt/bin/ mkdir -p /opt/bin/
cp -d "$(basename $0)" "$scriptInstall" cp -d "$( basename $0 )" "$scriptInstall"
ln -s "$scriptInstall" "/usr/bin/$script" &>/dev/null ln -s "$scriptInstall" "/usr/bin/$script" &>/dev/null
chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user
# cron/anacron install # cron/anacron install
@ -4056,12 +4057,13 @@ fscript_install(){ # 4/12/2017
touch "$scriptLogs" touch "$scriptLogs"
chmod 664 "$scriptLogs" # rw- rw- r--, proprio fu_user chmod 664 "$scriptLogs" # rw- rw- r--, proprio fu_user
chown "$fu_user:" "$scriptLogs" "$scriptInstall" chown "$fu_user:" "$scriptLogs" "$scriptInstall"
[ -e "$fileDev" ] || rm "$(basename $0)" &>/dev/null ## on efface pas si fileDev (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 ./)" f__info "log" "$script $version installé dans le système." "maintenant, appel du script par: $GREEN$script$BLUE (sans ./)"
} }
# suppression du script dans le système # suppression du script dans le système
fscript_remove(){ # 4/12/2017 fscript_remove(){ # 4/12/2017
if ! grep -q 'bin' <<< "$(dirname $0)" ; then if ! grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -r)" f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -r)"
return 1 return 1
@ -4075,7 +4077,7 @@ fscript_remove(){ # 4/12/2017
f__sudo "exec $0 -r" f__sudo "exec $0 -r"
return $? return $?
fi fi
[ "$(type -t fscript_remove_special)" ] && fscript_remove_special # test, si fonction spécifique, appel [ "$( type -t fscript_remove_special )" ] && fscript_remove_special # test, si fonction spécifique, appel
# suppression de /opt # suppression de /opt
rm "$scriptInstall" &>/dev/null rm "$scriptInstall" &>/dev/null
unlink "/usr/bin/$script" &>/dev/null unlink "/usr/bin/$script" &>/dev/null
@ -4085,10 +4087,10 @@ fscript_remove(){ # 4/12/2017
} }
# mise à jour script si dispo, v2, +update spécifique # mise à jour script si dispo, v2, +update spécifique
fscript_update(){ # 6/12/2017 fscript_update(){ # 18/12/2017
local dirTemp="/tmp/$script-$RANDOM" local dirTemp="/tmp/$script-$RANDOM"
[ $(type -t fscript_update_special) ] && fscript_update_special # test, si fonction spécifique, appel [ "$(type -t fscript_update_special)" ] && fscript_update_special # test, si fonction spécifique, appel
if [ -z "$updateSpecial" ] && ! grep -q 'bin' <<< "$(dirname $0)" ; then if [ -z "$updateSpecial" ] && ! grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)" f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)"
return 1 return 1
@ -4100,7 +4102,7 @@ fscript_update(){ # 6/12/2017
fi fi
mkdir -p "$dirTemp" mkdir -p "$dirTemp"
wget -q --tries=2 --timeout=15 -O "$dirTemp/$script" "$urlScript" wget -q --tries=2 --timeout=15 -O "$dirTemp/$script" "$urlScript"
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi [ "$?" -ne 0 ] && f__wget_test "$urlScript"
if grep -q '#!/bin/bash' "$dirTemp/$script" && grep -q '^### END CONTROL' "$dirTemp/$script"; then if grep -q '#!/bin/bash' "$dirTemp/$script" && grep -q '^### END CONTROL' "$dirTemp/$script"; then
cp -d "$dirTemp/$script" "$scriptInstall" cp -d "$dirTemp/$script" "$scriptInstall"
chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user

View File

@ -1,7 +1,10 @@
# changelog getInfo # changelog getInfo
f__architecture
## getInfo 2.70.0 18/12/2017
*syncro: f__archive_test, f__error, f__info, f__sudo, fscript_cronAnacron, fscript_get_version,
fscript_install, fscript_remove, fscript_update
## getInfo 2.69.0 18/12/2017 ## getInfo 2.69.0 18/12/2017