From 136de3989805cc7331b69816eda581b5a82c9c37 Mon Sep 17 00:00:00 2001 From: kyodev Date: Mon, 18 Dec 2017 22:12:44 +0100 Subject: [PATCH] getInfo 2.70.0 --- scripts/getInfo | 44 +++++++++++++++++++----------------- scripts/getInfo_changelog.md | 5 +++- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/scripts/getInfo b/scripts/getInfo index 98ca3b1..473c2c2 100755 --- a/scripts/getInfo +++ b/scripts/getInfo @@ -1,6 +1,6 @@ #!/bin/bash -version=2.69.0 +version=2.70.0 date="18/12/2017" projet="simpledeb" 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 -f__error(){ # 4/12/2017 +f__error(){ # 18/12/2017 local depart=1 i echo -e "\n$RED $script $version, erreur critique: $1 $STD" @@ -104,15 +104,15 @@ f__error(){ # 4/12/2017 echo -e " $BLUE${!i}$STD" done echo - if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi + [ "$opType" == "upgrade" ] && f__log "$script $version: $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é -f__info(){ # 15/10/2017 +f__info(){ # 18/12/2017 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 )" for (( i=$depart ; i<=$# ; i++ )); do 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 -f__sudo(){ # 4/12/2017 +f__sudo(){ # 18/12/2017 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 ? if sudo -v &>/dev/null && [ $EUID -ne 0 ] ; then sudo="sudo su --shell $toBash --preserve-environment -c " @@ -1222,7 +1222,7 @@ fi_ip_pub(){ #v 14/12/2017 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 info_ucode text nb_lignes=25 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 --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 ; \ - [ $( 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-*" if [ "$?" != "0" ]; then 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 -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 idm ps systemctl x11 @@ -3245,7 +3245,7 @@ figet_dm(){ #v1 14/12/2017 fg_dm_actif="(startx)" fi 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=${fg_dm_actif##* } # conservation dernier champs ifs ' ' fg_dm_actif=${fg_dm_actif/\(/} # suppression ( @@ -3981,7 +3981,7 @@ fipaste_curl_markdownshare(){ # à tester/finir fscript_cronAnacron(){ # 4/12/2017 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" dirSpool="$dirAnacron/spool" fileAnacron="$dirAnacron/$script.anacrontab" @@ -4002,7 +4002,7 @@ fscript_cronAnacron(){ # 4/12/2017 # crontab pour activation horaire anacron echo "@hourly $fu_user /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab 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" ;; remove ) @@ -4018,7 +4018,7 @@ fscript_get_version(){ # 5/12/2017 local var_temp 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 [ "$version" != "$versionScript" ]; then [ "$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 fscript_install(){ # 4/12/2017 + 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 )" return 1 @@ -4043,11 +4044,11 @@ fscript_install(){ # 4/12/2017 f__sudo "exec $0 -i" return $? 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 # install /opt mkdir -p /opt/bin/ - cp -d "$(basename $0)" "$scriptInstall" + cp -d "$( basename $0 )" "$scriptInstall" ln -s "$scriptInstall" "/usr/bin/$script" &>/dev/null chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user # cron/anacron install @@ -4056,12 +4057,13 @@ fscript_install(){ # 4/12/2017 touch "$scriptLogs" chmod 664 "$scriptLogs" # rw- rw- r--, proprio fu_user 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 ./)" } # suppression du script dans le système fscript_remove(){ # 4/12/2017 + 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)" return 1 @@ -4075,7 +4077,7 @@ fscript_remove(){ # 4/12/2017 f__sudo "exec $0 -r" return $? 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 rm "$scriptInstall" &>/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 -fscript_update(){ # 6/12/2017 +fscript_update(){ # 18/12/2017 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 f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)" return 1 @@ -4100,7 +4102,7 @@ fscript_update(){ # 6/12/2017 fi mkdir -p "$dirTemp" 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 cp -d "$dirTemp/$script" "$scriptInstall" chmod 775 "$scriptInstall" # rwx rwx r-x, proprio fu_user diff --git a/scripts/getInfo_changelog.md b/scripts/getInfo_changelog.md index 0970ecb..c9f452e 100644 --- a/scripts/getInfo_changelog.md +++ b/scripts/getInfo_changelog.md @@ -1,7 +1,10 @@ # 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