getInfo 4.0.0

This commit is contained in:
kyodev 2018-03-03 07:40:41 +01:00
parent 1ce194aea9
commit cc11992730
2 changed files with 170 additions and 96 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=3.28.0
date="01/03/2018"
version=4.0.0
date="02/03/2018"
projet="simpledeb"
contact="IRC freenode.net ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -270,7 +270,7 @@ f__sudo(){ # 24/02/2018
# $1=NOM de la variable à trimer (variable et non $variable), [$2=left|right|all], all si vide
# gain vitesse en test: 40 à 75% par rapport à '| xargs'
# var=$( function ) presque 2x lent que eval "var="
f__trim2(){ # 25/02/2018
f__trim(){ # 02/03/2018
local trim=${!1}
[[ "$2" == right || "$2" == all || -z "$2" ]] && trim="${trim%${trim##*[^[:space:]]}}" # fin right
[[ "$2" == left || "$2" == all || -z "$2" ]] && trim="${trim#${trim%%[^[:space:]]*}}" # début left
@ -553,7 +553,7 @@ f_grep_file(){ # 27/01/2018
echo -en "$display"
}
f_help(){ # 26/02/2018
f_help(){ # 02/03/2018
local ligne help=(
"-----------------------------------------------------------------------"
"$GREEN""./getInfo$STD : exécution script"
@ -569,6 +569,7 @@ f_help(){ # 26/02/2018
"$BLUE -us$STD : upgrade spécial du script en place (sans être installé)"
"$BLUE --ip$STD : affiche ip publique (ipv4/ipv6), pas de rapport markdown"
"$BLUE --mac$STD : affiche adresses Mac, pas de rapport markdown"
"$BLUE --rc$STD : fetch, affiche un résumé, destiné à l'identification et appelé depuis .batchrc"
"$BLUE --serial$STD : affiche n° série disques, batterie et châssis, pas de rapport markdown"
"$BLUE --ssid$STD : affiche configurations ssid, pas de rapport markdown,$RED root & NetworkManager$STD requis"
"$BLUE -t$STD$GREEN""n$STD : durée de conservation du paste de$GREEN n$STD jour(s)"
@ -576,7 +577,9 @@ f_help(){ # 26/02/2018
"-----------------------------------------------------------------------"
"$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD"
"$BLUE$script -h$STD, --help : affichage aide"
"$BLUE$script --irc$STD : installation fetch $RED(root)$STD"
"$BLUE$script -r$STD, --remove : désinstallation du script $RED(root)$STD"
"$BLUE$script --rrc$STD : désinstallation fetch $RED(root)$STD"
"$BLUE$script -u$STD, --upgrade : mise à jour script"
"$BLUE$script -v$STD, --version : version du script"
)
@ -688,7 +691,7 @@ f_prnt(){ # 22/02/2018
# contrainte markdown:
# l'italique avec _ ou * n'est pas géré, trop d'interférences potentielles
# liste niveau2: 3 ou 4 caractères, niveau3: 6 ou 8 caractères, puce * ou -
f_prnt_md(){ # 12/12/2017
f_prnt_md(){ # 02/03/2018
local display display2 ligne margin
if [ ! -f "$1" ]; then
f__info "pas de rapport à afficher, vous devez lancer une analyse auparavant:" \
@ -707,6 +710,7 @@ f_prnt_md(){ # 12/12/2017
# plus simple pour les multi-patterns, sinon matches multilignes délicats à gérer en cas d'impairage
IFS=$'\n' # normalement inutile
while read -r ligne; do
[[ "$ligne" == "------------" && "$operation" == "rc" ]] && continue
ligne=${ligne//\\/\\\\} # re echappement des antislash, utile pour efiboot, méthode bourrin, sans comprendre le pourquoi
# # TITRE 1 red
[[ "$ligne" =~ ^(#[^#].*)$ ]] && ligne="\x1B[31m"${BASH_REMATCH[1]}"\x1B(B\x1B[m"
@ -737,10 +741,10 @@ f_prnt_md(){ # 12/12/2017
# puces niveau 3
[[ "$ligne" =~ ^([[:space:]]{6,8})\*(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]}
[[ "$ligne" =~ ^([[:space:]]{6,8})-(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]}
display2+="$margin""$ligne\n"
display2+="$margin""$ligne"$'\n'
done <<< "$display"
IFS="$IFS_INI"
echo -e "$display2"
echo -e "${display2%$'\n'}"
}
# $1=modules [$2=repertoire spécifique de recherche], affiche emplacements et modules trouvés
@ -1573,7 +1577,7 @@ fi_mem(){ # 21/02/2018
}
# [$1=silent], assigne fe_nb_reseau, fe_cards_reseau
fi_net(){ # 22/02/2018 ( matériel )
fi_net(){ # 02/03/2018 ( matériel )
local cards cmd_cards modEth cmd_modEth cmt_modEth modWln cmd_modWln cmt_modWln pluriel text
local alert_wlx
@ -1582,8 +1586,8 @@ fi_net(){ # 22/02/2018 ( matériel )
# devices
figet_lspci "net" "name" # noms des cartes réseau détectées, mix ethernet/wifi
fe_cards_reseau=${lspci[name]/Network controller: /Wireless: }
fe_cards_reseau=${fe_cards_reseau/Ethernet controller: /Ethernet: }
fe_cards_reseau=${fe_cards_reseau/Wireless Network/Wireless}
fe_cards_reseau=${fe_cards_reseau/Ethernet controller: /Ethernet: }
fe_nb_reseau=${lspci[nb_card]} # nombre de cartes réseau détectées, mix ethernet/wifi
[ "$1" == "silent" ] && return
[ "$fe_nb_reseau" -eq 0 ] && return 0 # pas de cartes réseau, rien à voir (en attendant usb ou autre)
@ -1609,7 +1613,7 @@ fi_net(){ # 22/02/2018 ( matériel )
cmd_modWln="lsmod | grep -Ew '${lspci[srch_mod]}'"
[ "$( f__wcv -wv "$modWln" "^[[:alnum:]]" )" -gt 1 ] && pluriel="s" || unset pluriel
cmt_modWln="**Wifi:** $( f__wcv -wv "$modWln" "^[[:alnum:]]" ) module"$pluriel" utilisé"$pluriel
(( x_ip == 1 )) || figet_ip
figet_ip
if grep -iq 'wlx' <<< "$fg_ifn"; then
alert_wlx="Une interface wifi est en erreur: $( grep 'wlx' <<< "${fg_ifn// /$'\n'}" ) \n"
alert_wlx+="l'interface n'est pas reconnue et est donc mal nommée, "
@ -1696,7 +1700,7 @@ fi_packagers(){ # 23/11/2017
fi
}
fi_pkg_apt(){ # 28/02/2018
fi_pkg_apt(){ # 02/03/2018
local dateMaj nb_packages ifile info_update text pluriel
local sources cmt_sources cmd_sources result
local apt_v apt_version apt_prefs cmt_apt_prefs cmd_apt_prefs alert_non_pref
@ -1934,7 +1938,7 @@ fi_pkg_apt(){ # 28/02/2018
# paquets épinglés (pinning)
pinned=$( apt-cache policy | grep '\->' )
while read -r ; do
f__trim2 "REPLY"
f__trim "REPLY"
tempo+="$REPLY"$'\n'
done <<< "$pinned"
pinned="${tempo::-1}"
@ -2256,7 +2260,7 @@ fi_ssid(){ # 24/12/2017
rm "$file_output"
}
fi_system(){ # 01/03/2018
fi_system(){ # 02/03/2018
local mbr uname bootImage initDaemon upstart date_install lastboot uptime uptimePure loadAverage pluriel text
local enum_batt nb_desktop serverX serverType
local alimentation alim_total
@ -2274,7 +2278,7 @@ fi_system(){ # 01/03/2018
(( x_dmi == 1 )) || figet_dmi
(( x_gpu == 1 )) || fi_gpu "silent"
(( x_net == 1 )) || fi_net "silent"
(( x_screen )) || figet_screen
(( x_screen == 1 )) || figet_screen
(( x_shell == 1 )) || figet_shell
(( x_touchpad == 1 )) || fi_touchpad "silent"
(( x_wm == 1 )) || figet_wm
@ -2368,8 +2372,8 @@ fi_system(){ # 01/03/2018
# batterie(s)
enum_batt=$( grep -E '[A-Z][A-Z]' <<< "$fg_batt" )
###
if [ "$1" == "rc" ]; then
fi_systemRc
if [ "$operation" == "rc" ]; then
fi_system_rc
return
fi
[ "$ORIGIN" ] && f_prnt tit2 "système"
@ -2393,8 +2397,8 @@ fi_system(){ # 01/03/2018
f_prnt l2 "$uname"
f_prnt l2 "boot: $mbr"
f_prnt l2 "architecture système: $fu_archi"
f_prnt l2 "date d'installation: $date_install"
f_prnt l2 "démon d'initialisation: $initDaemon"
f_prnt l2 "installation: $date_install"
f_prnt l2 "démon init: $initDaemon"
f_prnt l3 "$upstart" '[ "$upstart" ]'
f_prnt l2 "shell actif: $fg_shell"
[ "$( f__wcv -w "$fg_shells" )" -gt 1 ] && pluriel="s" || unset pluriel
@ -2406,8 +2410,7 @@ fi_system(){ # 01/03/2018
f_prnt l2 "nombre d'écrans: $fg_nb_screen"
[ $( f__wcv "-wv" "$fg_resolution" "pixels" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "résolution"$pluriel": $fg_resolution"
[ $( wc -w <<< "$fg_dm" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "display manager"$pluriel": $fg_dm"
f_prnt l2 "display manager: $fg_dm"
f_prnt l2 "desktop (DE): $fg_de"
f_prnt l2 "panel: $fg_de_panel" '[ "$fg_de_panel" ]'
f_prnt l2 "window manager: $fg_wm"
@ -2434,46 +2437,6 @@ fi_system(){ # 01/03/2018
f_dspl_alrt "$alert_slim" "alert"
}
fi_systemRc(){
f_prnt 2 "${fg_dmi//$'\n'/ }"
f_prnt 2 "$( sed -n '1p' <<< "$fg_cpu" )"
f_prnt 2 "$fe_gpu"
f_prnt 2 "$fe_cards_reseau"
f_prnt
f_prnt l2 "distrib: $fg_distrib"
f_prnt l2 "kernel: $uname"
f_prnt l2 "boot: $mbr"
f_prnt l2 "date d'installation: $date_install"
f_prnt l2 "démon d'initialisation: $initDaemon"
f_prnt l3 "$upstart" '[ "$upstart" ]'
f_prnt l2 "shell: $fg_shell"
f_prnt l2 "${bootImage//$'\n'/ }"
f_prnt l2 "serveur d'affichage$serverType $serverX"
f_prnt l2 "nombre d'écrans: $fg_nb_screen"
[ $( f__wcv "-wv" "$fg_resolution" "pixels" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "résolution"$pluriel": $fg_resolution"
[ $( wc -w <<< "$fg_dm" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "display manager"$pluriel": $fg_dm"
f_prnt l2 "desktop (DE): $fg_de"
f_prnt l2 "panel: $fg_de_panel" '[ "$fg_de_panel" ]'
f_prnt l2 "window manager: $fg_wm"
f_prnt
f_prnt 1 "$fg_disk_part_fix_tot"
f_prnt 1 "dernier boot: $lastboot ($uptime)"
loadAverage=$(
LC_ALL=C uptime 2>/dev/null | awk -v threads="$fg_nb_threads" -F'(, )' '{
gsub(/ load average: /,"")
if ( threads > 1 ) th="threads"; else th="thread"
la1 = $(NF-2)
la5 = $(NF-1)
la15 = $NF
printf "charge système: %s %s %s, ", la1, la5, la15
printf "soit avec %d %s : %d%% %d%% %d%% ", threads, th, la1/2*100, la5/2*100, la15/2*100
}' )
f_prnt 1 "$loadAverage"
f_prnt flush
}
fi_system_analyse(){ # 25/02/2018
[ $( f__which systemd ) ] || return 0 # pas systemd
local bootTime cmd_bootTime cmt_bootTime pluriel text
@ -2546,6 +2509,61 @@ fi_system_analyse(){ # 25/02/2018
f_dspl cmd:text "$bootGraph" "$cmd_bootGraph" "$cmt_bootGraph"
}
fi_system_rc(){ # 02/03/2018
local if_actif iip ip_act
if_actif=$( ip -o link | awk '/state UP/{sub(/:/,"",$2); printf "%s ",$2}' )
for iip in $if_actif; do
ip_act+=$( ip -o address show dev $iip | awk '
#~ /inet/ { sub(/wl.*/,"wifi: "$2,$2); sub(/en.*|eth.*/,"rj45: "$2,$2); sub(/\/.*/,"", $4) }
/inet/ { sub(/\/.*/,"", $4) }
/inet6/ { ip6 = $4; exit }
/inet / { ip4 = $4 }
END { printf "%s %s %s",$2,ip4,ip6 }' )
done
f_prnt code
f_prnt 2 "$( sed -n '1p' <<< "$fg_dmi" )"
f_prnt 2 "$( sed -n '1p' <<< "$fg_cpu" )"
f_prnt 2 "$fe_gpu"
#~ f_prnt 2 "$fe_cards_reseau"
if grep -q 'wl.*' <<< "$ip_act"; then
#~ toPrint=$( grep 'wl.*' <<< "$ip_act" )$'\n'" $( grep 'Wireless:' <<< "$fe_cards_reseau" )"
toPrint=$( grep 'Wireless:' <<< "$fe_cards_reseau" )$'\n'" $(grep 'wl.*' <<< "$ip_act" )"
f_prnt l2 " * ${toPrint/Wireless: }"
fi
if grep -Eq 'en.*|eth.*' <<< "$ip_act"; then
toPrint=$( grep 'Ethernet:' <<< "$fe_cards_reseau" )$'\n'" $(grep -E 'en.*|eth.*' <<< "$ip_act" )"
f_prnt l2 " * ${toPrint/Ethernet: }"
fi
f_prnt
f_prnt l2 "distrib: $fg_distrib (installation: $date_install)"
f_prnt l2 "kernel : $uname"
f_prnt l2 "boot: $mbr, init: $initDaemon $upstart"
f_prnt l2 "shell : $fg_shell"
f_prnt l2 "serveur d'affichage$serverType $serverX"
f_prnt l2 "nombre d'écrans: $fg_nb_screen"
f_prnt l2 "résolution"$pluriel": $fg_resolution"
f_prnt l2 "display manager: $fg_dm"
f_prnt l2 "desktop (DE) : $fg_de"
f_prnt l2 "window manager : $fg_wm"
f_prnt
f_prnt l3 "$fg_disk_part_syst"
f_prnt l3 "dernier boot: $lastboot ($uptime)"
loadAverage=$(
LC_ALL=C uptime 2>/dev/null | awk -v threads="$fg_nb_threads" -F'(, )' '{
gsub(/ load average: /,"")
if ( threads > 1 ) th="threads"; else th="thread"
la1 = $(NF-2)
la5 = $(NF-1)
la15 = $NF
printf "charge système: %s %s %s, ", la1, la5, la15
printf "soit avec %d %s : %d%% %d%% %d%% ", threads, th, la1/2*100, la5/2*100, la15/2*100
}' )
f_prnt l3 "$loadAverage"
f_prnt code
f_prnt flush
}
# [$1=silent], assigne $fe_touchpad, fe_nb_touchpad
fi_touchpad(){ # 24/02/2018
local device cmd_device toScrut xfile file_logs type type_pt pilote cmd_pilote cmt_pilote info_driver
@ -3277,7 +3295,7 @@ figet_cpu_uarch(){ # 14/11/2017
}
# assigne $fg_de, $fg_de_panel
figet_de(){ # 25/02/2018 # thanks neofetch
figet_de(){ # 02/03/2018 # thanks neofetch
local de="n/a" ps_e version tmp_version
x_de=1
@ -3321,8 +3339,8 @@ figet_de(){ # 25/02/2018 # thanks neofetch
de=$( unity --version )
elif [ "${de,,}" == "xfce" ]; then
version=$( xfce4-about --version | head -n1 )
version=${version#*(Xfce}
version=${version%)*}
version=${version#*\(Xfce}
version=${version%\)*}
de="$de$version"
fi
if [ "$de" ]; then
@ -3342,12 +3360,12 @@ figet_de(){ # 25/02/2018 # thanks neofetch
# $fg_nb_disk : nb disk fixe & amovible, $fg_disk_table : tableau sommaire, fg_disk_serial
# $fg_disk_fixe : liste devices block fixes, $fg_disk_amov : liste devices block amovibles
# $fg_disk_part_fix_tot : espace des partitions fixes montées
# $fg_disk_part_fix_tot : espace des partitions fixes montées, *fg_disk_part_syst: espace partition système
# $fg_disk_ata, $fg_disk_usb, $fg_disk_mmc, $fg_disk_nvme : liste disk ata, usb...
# $fg_disk_part_fixe_m, $fg_disk_part_amov_m : liste partitions montées, fixes ou amovibles
# $fg_disk_part_swap : liste partitions swap
# $fg_disk_part_fixe_nm, $fg_disk_part_amov_nm : liste partitions non montées, fixes ou amovibles
figet_disk(){ # 26/02/2018
figet_disk(){ # 02/03/2018
local size type list_id idisk lsblk vendor model rev serial
unset fg_disk_fixe fg_disk_amov
@ -3359,26 +3377,26 @@ figet_disk(){ # 26/02/2018
for idisk in $( f__dir -l "/sys/block/" "loop" ); do
#~ for idisk in /sys/block/* ; do
size=$( lsblk -no SIZE -d /dev/$idisk )
f__trim2 "size"
f__trim "size"
type=$( lsblk -no HOTPLUG /dev/$idisk | sed -n '2p' )
f__trim2 "type"
f__trim "type"
[ "$type" == "0" ] && type="Fixe" || type="Amov"
vendor=$( lsblk -no VENDOR /dev/$idisk )
f__trim2 "vendor"
f__trim "vendor"
model=$( lsblk -no MODEL /dev/$idisk )
f__trim2 "model"
f__trim "model"
serial=$( lsblk -no SERIAL /dev/$idisk )
f__trim2 "serial"
f__trim "serial"
if [[ -z "$vendor" || -z "$model" ]]; then # tentative extraction valeur via /dev/disk/by-id/
vendor="n/a"
vendor=$( ls -l /dev/disk/by-id/ | awk ' !/-part/ && !/wwn-/ {print $9,$11}' )
f__trim2 "vendor"
f__trim "vendor"
vendor=$( sed -E 's/.*-(.*)_[0-9]+.*$/\1/;s/_/ /g' <<< "$vendor" )
fg_disk_table+=$( printf '%-5s %-8s %-6s %s' "$idisk" "$size" "$type" "$vendor" )$'\n'
fg_disk_serial+=$( printf '%-5s %s %s' "$idisk" "$vendor" "$serial" )$'\n'
else
rev=$( lsblk -no REV /dev/$idisk )
f__trim2 "rev"
f__trim "rev"
fg_disk_table+=$( printf '%-5s %-8s %-6s %-10s %-18s %-6s' "$idisk" "$size" "$type" "$vendor" "$model" "$rev")$'\n'
fg_disk_serial+=$( printf '%-5s %-10s %-18s %-6s %-24s %s' "$idisk" "$vendor" "$model" "$rev" "$serial")$'\n'
fi
@ -3413,11 +3431,15 @@ figet_disk(){ # 26/02/2018
# total espaces partitions fixes montées
fg_disk_part_fix_tot="partitions fixes montées (total, utilisé, dispo): "
fg_disk_part_fix_tot+=$( df -h --total --output=size,used,avail $( printf '/dev/%s ' $fg_disk_part_fixe_m ) 2>/dev/null | tail -n-1 )
f__trim2 "fg_disk_part_fix_tot"
f__trim "fg_disk_part_fix_tot"
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//G/Go}
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//M/Mo}
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//K/ko}
[ "$fg_disk_part_fix_tot" ] || fg_disk_part_fix_tot="n/a"
# espace partition système
fg_disk_part_syst=$(df -h --output=source,size,used,avail,target | awk '
/\/$/ {gsub(/G/,"Go"); gsub(/M/,"Mo"); gsub(/k/,"ko")
printf "partition système: %s, total: %s, occupé: %s, libre: %s %d%%",$1,$2,$3,$4, $4/$2*100}' )
# liste des disques par type
list_id=$( ls -l /dev/disk/by-id/ | awk '{print $9,$11}' )
fg_disk_ata=$( awk -F '/' '$0 ~ /^ata/ && $0 !~ /part/{printf "%s ",$NF}' <<< "$list_id" )
@ -3653,24 +3675,26 @@ figet_hw(){ # 25/02/2018
}
# $1=-4|-6, assigne $fg_ip, $fg_gws, $fg_ifn, $fg_mac, fg_ip_deprec (ipv6)
figet_ip(){ # 24/02/2018
figet_ip(){ # 02/03/2018
local target ifn
unset fg_ip fg_ip_deprec fg_gws fg_ifn_prior fg_ifn fg_mac
x_ip=1
[ $( f__which ip ) ] || return 1
[ "$1" ] && proto="$1" || proto="-4"
# adresses ip
fg_ip=$( ip $proto -o address | awk -v proto="$proto" '
BEGIN { if (proto == -6) esp=41; else esp=16 }
BEGIN { if (proto == -6) larg=41; else larg=16 }
/scope global/ {
sub(/wl.*/,$2" (wifi)",$2); sub(/.*en.*|.*eth.*/,$2" (ethernet)",$2);
match($0,/scope .*\\/); scope=substr($0,RSTART,RLENGTH)
sub(/scope /,"",scope); sub(/\\/,"",scope)
match($0,/preferred_lft .*sec/); lft=substr($0,RSTART,RLENGTH)
sub(/sec/,"s",lft); sub(/preferred_lft/,"lft",lft)
printf "%-17s: %-"esp"s (%s) %s \n",$2,$4,lft,scope }
printf "%-17s: %-"larg"s ",$2,$4
if (proto == -6) {
match($0,/scope .*\\/); scope=substr($0,RSTART,RLENGTH)
sub(/scope /,"",scope); sub(/\\/,"",scope)
match($0,/preferred_lft .*sec/); lft=substr($0,RSTART,RLENGTH)
sub(/sec/,"s",lft); sub(/preferred_lft/,"lft",lft)
printf "(%s) %s \n",lft,scope }
else printf "\n" }
/fe80::/ {
sub(/wl.*/,$2" (wifi)",$2)
match($0,/scope .* \\/); scope=substr($0,RSTART,RLENGTH); sub(/scope /,"",scope); sub(/ \\/,"",scope)
@ -3686,8 +3710,8 @@ figet_ip(){ # 24/02/2018
# passerelles
fg_gws=$( ip $proto route | awk '
BEGIN { if (proto == -6) esp=42; else esp=12 }
/default via/ { printf "%-"esp"s (%s)\n",$3,$5 }
BEGIN { if (proto == -6) larg=42; else larg=12 }
/default via/ { printf "%-"larg"s (%s)\n",$3,$5 }
' )
# interface sortante
if [ "$proto" == "-6" ]; then
@ -4326,6 +4350,42 @@ fipaste_curl_markdownshare(){ # à tester/finir
#-d expire ? ou --data expire
}
# fonction spécifique à l'installation
fscript_install_special(){ # 02/03/2018
local bashrc
# option --rc
if [ -e "/etc/bash.bashrc" ]; then # debian
bashrc="/etc/bash.bashrc"
elif [ -e "/etc/bashrc" ]; then # redhat
bashrc="/etc/bashrc"
elif [ -e "/etc/bash.bashrc.local" ]; then # suse
bashrc="/etc/bash.bashrc.local"
else
return
fi
grep -q "$script_install --rc" "$bashrc" && return # déjà inscrit
echo -e "\n### add by getInfo" >> "$bashrc"
echo "$script_install --rc" >> "$bashrc"
}
# fonction spécifique à la désinstallation
fscript_remove_special(){ # 02/03/2018
local bashrc
# option --rc
if [ -e "/etc/bash.bashrc" ]; then # debian
bashrc="/etc/bash.bashrc"
elif [ -e "/etc/bashrc" ]; then # redhat
bashrc="/etc/bashrc"
elif [ -e "/etc/bash.bashrc.local" ]; then # suse
bashrc="/etc/bash.bashrc.local"
else
return
fi
sed -i "/$script/d" "$bashrc"
}
# tache upgrade dans anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove
fscript_cronAnacron(){ # 26/01/2018
local dirAnacron dirSpool fileAnacron
@ -4479,7 +4539,7 @@ prg_init(){ # 01/03/2018
shopt -u force_fignore execfail failglob
# options bash spé
# shopt -s nocasematch ( case, [[ ) nocaseglob ( fichier )
# shopt -s nocasematch ( case, [[ ), nocaseglob ( fichier )
# whereis script retourne vide si installé
DIRNAME=$( dirname $0 )
@ -4637,7 +4697,7 @@ function display_menu {
prg_init
# logo et définition couleurs
[ "$1" != "-rc" ] && f_affichage
[ "$1" != "--rc" ] && f_affichage
# paramètres script
user_agent="Mozilla/5.0 Firefox"
@ -4673,7 +4733,7 @@ for j in $options; do # première passe options
-t* ) # durée de conservation standard du paste en jours
pasteDuration=$(( $( sed -En 's/-t([0-9]+)/\1/p' <<< "$j" ) ))
;;
-i | --install | -r | --remove ) # root requis si install ou remove script
-i | --install | -r | --remove | --irc | --rrc ) # root requis si install ou remove script
if [ "$EUID" -ne 0 ]; then
f__info "vous devez être$RED ROOT$BLUE pour cette opération"
f__sudo "exec $0 $@"
@ -4714,14 +4774,6 @@ for j in $options; do # deuxième passe options, actions
prg_2 "$j"
prg_3
;;
-rc ) # essai rc
file_output="/tmp/getInfo.rc"
echo > "$file_output"
chmod 666 "$file_output" &>/dev/null
fi_system "rc"
cat "$file_output"
#~ f_prnt_md "$file_output"
exit ;;
-dx ) # essai détail, xorgOnly
prg_1 "$*"
fi_gpu "xorgOnly"
@ -4750,6 +4802,15 @@ for j in $options; do # deuxième passe options, actions
figet_ip
f__info "adresses MAC:\n$STD$BOLD$fg_mac"
;;
--rc ) # fetch
operation="rc"
file_output="/tmp/getInfo.rc"
echo > "$file_output"
chmod 666 "$file_output" &>/dev/null
fi_system "rc"
#~ cat "$file_output"
f_prnt_md "$file_output"
exit ;;
--serial ) # affiche n° série
fi_serial
;;
@ -4765,12 +4826,18 @@ for j in $options; do # deuxième passe options, actions
-r | --remove ) # remove script
fscript_remove
;;
--irc ) # install fetch
fscript_install_special
;;
--rrc ) # remove fetch
fscript_remove_special
;;
-u | --upgrade ) # upgrade script
opType="upgrade" # log si f__error
operation="upgrade" # log si f__error
fscript_update
exit ;;
-us | --us ) # upgrade spécial (en place)
opType="upgrade" # log quand f__error
operation="upgrade" # log quand f__error
script_install="$(dirname $0)/$script"
fscript_update "update en place" # redéfinition répertoire install avec celui du script
exit ;;

View File

@ -2,6 +2,13 @@
## getInfo 4.0.0 02/03/2018
nouveau: option rc, affichage résumé ala neofetch, installation incluse dans l'install standard
révision: figet_ip, ipv4
fix: figet_de, version xfce
fix: optype
## getInfo 3.28.0 01/03/2018
* nouveau: fi_system, alerte SLiM+systemd