This commit is contained in:
kyodev 2017-08-30 01:04:45 +02:00
parent fcb465ff47
commit dda02b7cbb
2 changed files with 110 additions and 64 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=1.7.0
date="28/08/2017"
version=1.8.0
date="30/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -181,6 +181,33 @@ f__wget_test(){ #v28/08/2017
exit 0
}
f_help(){
printf "$BLUE"
cat << 'EOF'
----------------------------------------------------------------------
./getInfo : exécution normale
getInfo : exécution normale si script installé dans le système
options:
-d, --dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
-h, --help : affichage aide
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
-l, --list : afficher le rapport existant
-p, --paste : exporte le rapport existant, durée du paste standard 7 jours
-s, --ssid : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
debug : le résultat json du paste sera affiché après export
-tn : durée du paste de n jour(s)
-i, --install : installation du script dans le système, droits root requis
-r, --remove : suppression du script dans le système, droits root requis
-u, --upgrade : upgrade script si maj possible
-v, --version : version du script, en ligne et en cours d'exécution
EOF
printf "$COLOR\n"
}
# assigne $context_appli, context_break
fi__context(){
context_break="\n"
@ -353,30 +380,6 @@ fi_gpu(){
echo -e "$text" >> "$fileOutput"
}
fi_help(){
printf "$BLUE"
cat << 'EOF'
----------------------------------------------------------------------
./getInfo : exécution normale
getInfo : exécution normale si script installé dans le système
options:
-d, --dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
-h, --help : affichage aide
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
-l, --list : afficher le rapport existant
-p, --paste : exporte le rapport existant
-s, --ssid : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
-i, --install : installation du script dans le système, droits root requis
-r, --remove : suppression du script dans le système, droits root requis
-u, --upgrade : upgrade script si maj possible
-v, --version : version du script, en ligne et en cours d'exécution
EOF
printf "$COLOR\n"
}
fi_localisation(){
local locale="$(grep -vE '#|^$' /etc/default/locale)"
local timezone="$(cat /etc/timezone)"
@ -945,7 +948,7 @@ figet_wm() { # thanks neofetch, assigne $wm
}
fipaste(){
fipaste_curl_pastery "$fileOutput" "$PasteDuration" "$optDebug"
fipaste_curl_pastery "$fileOutput" "$pasteDuration" "$optDebug"
# à tester fipaste_curl_markdownshare "$fileOutput"
}
@ -1025,13 +1028,16 @@ fscript_get_version(){ # v27/08/2017
}
# installation du script dans le système
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 "$RED""$script $version est déjà installé"
fscript_install(){ # v29/08/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 )$COLOR"
return 1
fi
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour installer ce script dans le système"
if [ $EUID -ne 0 ]; then
f__info "$RED""vous devez être ROOT pour installer ce script dans le système$COLOR"
return 3
fi
[ "$(type -t fscript_install_special)" ] && fscript_install_special # test, si fonction spécifique, appel
f__requis "wget anacron cron"
# install /opt
mkdir -p /opt/bin/
@ -1049,8 +1055,19 @@ fscript_install(){ # v27/08/2017
}
# suppression du script dans le système
fscript_remove(){ # v27/08/2017
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour supprimer ce script dans le système"
fscript_remove(){ # v29/08/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)$COLOR"
return 1
fi
if [ ! -x "/opt/bin/$script" ];then
f__info "$RED$script n'est pas installé$COLOR"
return 2
fi
if [ $EUID -ne 0 ]; then
f__info "$RED""vous devez être ROOT pour supprimer ce script dans le système$COLOR"
return 3
fi
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
@ -1060,10 +1077,14 @@ fscript_remove(){ # v27/08/2017
}
# mise à jour script si dispo
fscript_update(){ # v26/08/2017
fscript_update(){ # v29/08/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 -u)$COLOR"
return 1
fi
fscript_get_version
if [ "$script_aJour" == "ok" ]; then
f__info "log" "pas de mise à jour disponible pour $script"
f__info "log" "pas de mise à jour disponible pour $script $version"
return 0
fi
local dirTemp="/tmp/$script-$RANDOM/"
@ -1084,7 +1105,6 @@ export PATH TERM
fileOutput="getInfo_rapport.md"
fileLogs="/var/log/sdeb_$script.log"
fileDev="/opt/bin/fileDev"
PasteDuration=7 # durée conservation du paste en jours
f__affichage
f__user && retourFUser=0 || retourFUser="$?"
[ "$retourFUser" -eq 1 ] && f__error "user indéterminé, pour contourner, lancer le script avec:\n USER_INSTALL=user $0 \n"
@ -1127,51 +1147,69 @@ prg_3(){ # fin de traitements
f__info "vous pouvez le visualiser avec $GREEN$script -l$COLOR"
}
options="$@"
for i in "$options"; do
options=$@
# traitement option
for i in $options; do
case $i in
"" )
if [ $# -eq 0 ];then
prg_1
prg_2
prg_3
fi
;; # programme
--dmesg | -d )
debug )
optDebug="debug"
;; # si debug, retour json de pastery.net
-t* )
pasteDuration="$(sed -En 's/-t([0-9]+)/\1/p' <<< $i)"
;; # durée de conservation standard du paste en jours
esac
done
[ "$pasteDuration" ] || pasteDuration=7 # durée de conservation standard du paste en jours
# purge option des options
options="$(sed -E 's/debug[ ]*//g; s/-t[0-9]+//g' <<< $options;)"
echo "pasteDuration$pasteDuration"
echo "options$options"
# traitement action
[ $# -eq 0 ] && options="info"
for i in $options; do
case $i in
info )
prg_1
prg_2
prg_3
exit ;; # programme
-d | --dmesg )
fi_dmesg "dmesg"
prg_3
;; # rapport dmesg only, root requis
exit ;; # rapport dmesg only, root requis
--ip )
figet_ip_public "IPv4"
[ "$ip_public" ] && f__info "raw" "$GREEN ip4: $ip_public"
figet_ip_public "IPv6"
[ "$ip_public" ] && f__info "raw" "$BLUE ip6: $ip_public\n"
;; # affiche ip public
--list | -l )
exit ;; # affiche ip public
-l | --list )
[ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher"
;; # afficher le rapport existant
--paste | -p )
exit ;; # afficher le rapport existant
-p | --paste )
fipaste
;; # exporte le rapport existant
--ssid | -s )
exit ;; # exporte le rapport existant
-s | --ssid )
fi_ssid
;; # affiche configurations ssid, root requis
exit ;; # affiche configurations ssid, root requis
-i | --install )
fscript_install
;; # installation du script dans le système
fscript_install || f_help
exit ;; # installation du script dans le système
-r | --remove )
fscript_remove
;; # suppression du script dans le système
fscript_remove || f_help
exit ;; # suppression du script dans le système
-u | --upgrade )
opType="upgrade"
fscript_update
exit ;; # upgrade script si maj possible
fscript_update || f_help
exit ;; # upgrade script si maj possible
-v | --version )
fscript_get_version
;; # version du script, en ligne et exécuté
exit ;; # version du script, en ligne et exécuté
-h | --help | * )
fi_help
;; # affichage help
f_help
exit ;; # affichage help
esac
done

View File

@ -6,6 +6,14 @@
* option debug pour retour paste
* option délai paste
## 1.8.0 30/08/2017
* révision conditions d'utilisations, fscript_install, fscript_remove(), fscript_update
* révision appel, fscript_install, fscript_remove(), fscript_update
* renommage f_help
* options debug et pasteDuration
## 1.7.0 28/08/2017
* fix bug: localisation fileDev