This commit is contained in:
kyodev 2017-08-08 12:48:49 +02:00
parent baf9be2c01
commit a975a9ab15
1 changed files with 36 additions and 46 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=0.10.0
date="07/08/2017"
version=0.11.0
date="08/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getInfo"
@ -85,12 +85,6 @@ f__requis(){
[ "$dependsFail" ] && f__error "commandes(s) manquante(s)" " vous devez avoir le(s) commande(s) ""$RED$dependsFail""$BLUE""pour exploiter ce script"
}
# root? return 0 else 1
f__root(){
[ $EUID -eq "0" ] && return 0 || return 1
}
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome, xfce. manque KDE
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
# USER_INSTALL=user script
@ -132,7 +126,7 @@ fscript_cronAnacron(){
mkdir -p "$dirSpool"
chown -R --no-preserve-root "$user_": "$dirSpool"
chmod -R --no-preserve-root ug+xw "$dirSpool"
# cron tab pour activation horaire anacron
# crontab pour activation horaire anacron
grep -q ".*$script.anacrontab" /etc/crontab || \
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
;;
@ -146,7 +140,7 @@ fscript_cronAnacron(){
esac
}
# mise à jour script si dispo
# mise à jour script si disponible
fscript_dl(){
if [ "$script_aJour" == "ok" ]; then return 0; fi
local dirTemp="/tmp/$script-$RANDOM/"
@ -177,7 +171,7 @@ fscript_get_version(){
else f__info "version script en ligne non accessible"; fi
}
# install du script dans le système
# installation du script dans le système
fscript_install(){
if dirname "$0" | grep -q 'bin' ; then
f__info "$script $version est déjà installé"
@ -203,7 +197,7 @@ fscript_install(){
# suppression du script dans le système
fscript_remove(){
f__root || f__error "vous devez être ROOT pour supprimer ce script dans le système"
[ $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
unlink /usr/bin/"$script" &>/dev/null
@ -713,23 +707,19 @@ cat << 'EOF'
getInfo : exécution normale si script installé dans le système
options:
--debug, -d : affichage résultat complet de l'export paste
--dmesg, -d : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
--debug : affichage résultat complet de l'export paste
--help, -h : affichage aide
--ip, -ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
--list, -l : afficher le rapport existant
--paste, -p : exporte le rapport existant
--dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
--ssid, -s : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
--install, -i : installation du script dans le système
--remove, -r : suppression du script dans le système
--upgrade, -u : upgrade script si maj possible
--version, -v : version du script, en ligne et en cours d'exécution
--ssid, -s : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
--ip : affiche ip public, /!\ infos confidentielles, sans rapport
exemple
./getInfo construit un rapport et propose un export final
./getInfo --debug si export final, le résultat complet de l'export sera affiché
./getInfo -p -d si export du rapport existant, le résultat complet de l'export sera affiché
EOF
printf "$COLOR\n"
}
@ -983,12 +973,12 @@ fi_paste(){
PATH='/bin:/usr/bin:/sbin' ; IFS=' '
fileOutput="getInfo_rapport.md"
fileLogs="/var/log/sdeb_$script.log"
dureePaste=1 # en jour
dureePaste=1 # en nombre de jours
f__affichage
f__user
prg_1(){ # début
f__requis "gawk"
f__requis "gawk wget curl"
fi__context
rm "$fileOutput" &>/dev/null
touch "$fileOutput"
@ -1005,8 +995,8 @@ prg_2(){ # traitements principaux
fi_gpu
fi_disk
fi_reseau
fi_nm # si network manager, état et conf
fi_nm_wifis # si network manager, wifi proximité
fi_nm # si network manager, état et conf
fi_nm_wifis # si network manager, wifi proximité
fi_usb
fi_localisation
fi_system_analyse
@ -1021,39 +1011,40 @@ prg_3(){ # fin de traitements
f__info "\n$GREEN le rapport est disponible en local, fichier: $fileOutput"
}
for i in $@; do
options=$@
for i in "$options"; do
case $i in
--debug )
option="debug" ;; # affichage résultat complet de l'export paste
esac
done
for (( i=0 ; i<=$# ; i++ )); do
case ${!i} in
--paste | -p ) fi_paste ;; # exporte le rapport existant
--list | -l ) cat $fileOutput ;; # afficher le rapport existant
for i in "$options"; do
case $i in
--dmesg | -d ) fi_dmesg "dmesg" ;; # rapport dmesg only, root requis
--install | -i ) fscript_install ;; # installation du script dans le système
--list | -l ) [ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher" ;; # afficher le rapport existant
--paste | -p ) fi_paste ;; # exporte le rapport existant
--remove | -r ) fscript_remove ;; # suppression du script dans le système
--ssid | -s ) fi_ssid ;; # affiche configurations ssid, root requis
--version | -v ) fscript_get_version ;;# version du script, en ligne et exécuté
--upgrade | -u )
f__log "test mise à jour"
fscript_get_version
fscript_dl ;; # upgrade script si maj possible
--ssid | -s ) fi_ssid ;; # affiche configurations ssid
--dmesg ) fi_dmesg "dmesg" ;; # rapport dmesg only
--ip )
get_ip_public "IPv4"
f__info "$GREEN""ip4: $ip_public"
get_ip_public "IPv6"
f__info "$BLUE""ip6: $ip_public" ;; # affiche ip public
$0 ) if [ $# -eq 0 ];then
"" ) if [ $# -eq 0 ];then
prg_1
prg_2
prg_3
fi ;; # programme
--help | -h | * ) fi_help ;; # affichage help
--ip | -ip )
get_ip_public "IPv4"
f__info "$GREEN""ip4: $ip_public"
get_ip_public "IPv6"
f__info "$BLUE""ip6: $ip_public" ;; # affiche ip public
--upgrade | -u )
f__log "test mise à jour"
fscript_get_version
fscript_dl ;; # upgrade script si maj possible
--help | -h | * ) fi_help ;; # affichage help
esac
done
printf $COLOR
exit
@ -1070,7 +1061,6 @@ pre {
toc auto markdown:
http://ndossougbe.github.io/strapdown/
à voir:
https://www.pastery.net/api/
license non libre? pas de depot, mais ça marche