This commit is contained in:
kyodev 2017-07-30 17:08:05 +02:00
parent 5bdd0491f5
commit bf043a623e
1 changed files with 224 additions and 0 deletions

224
scripts/getInfo Executable file
View File

@ -0,0 +1,224 @@
#!/bin/bash
version=0.0.2
date="07/2017"
projet="simpledebian"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getInfo"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo"
urlNotice=""
##### license LPRAB/WTFPL
# auteur: simpledebian
# contributeurs: kyodev
#####
PATH='/bin:/usr/bin' ; IFS=' '
f__affichage(){
# définition couleurs
YELLOW="$(printf "\033[0;33m")" # ?
GREEN="$(printf "\033[0;32m")" # ok
BLUE="$(printf "\033[0;34m")" # info
RED="$(printf "\033[0;31m")" # alerte
COLOR="$(printf "\033[0m")" # standard
# clear
printf "$BLUE"
cat << 'EOF'
_ ___ __
__ _ ___| |_|_ _|_ __ / _| ___
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/
EOF
echo -e "$YELLOW version $version - $date$COLOR\n"
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
}
# detect system architecture, assign $architecture : i386 | x86_64, return 1 on unknown architecture
# remarque, debian: dpkg --print-architecture affiche i386
f__architecture(){
case "$(uname -m)" in
amd64 | x86_64 )
architecture="x86_64";;
i?86 | x86 )
architecture="i686";;
* )
case "$(getconf LONG_BIT)" in
64 )
architecture="x86_64";;
32 )
architecture="i686";;
*)
return 1
esac ;;
esac
}
# test dépendances (commandes disponibles), $1 liste commandes ou $1...$x, si manquant, avertissement des paquets manquants
f__requis(){
local dependsFail
for i in $@; do
if [ ! "$(which $i)" ]; then
dependsFail+="$i "
fi
done
[ -z "$dependsFail" ] || f__error "paquet(s) manquant(s)" \
"vous devez avoir le(s) paquet(s) $i pour exploiter ce script, installation,$RED en root$COLOR:" \
"apt install $dependsFail"
}
fi_divers(){
local uptime=$(uptime -p)
local lastboot=$(last -R -n 1 --time-format iso reboot | head -n 1 | grep -o '[0-9:T+-]*' | sed 's/T/ /')
#dépend de apt install lsb-release, debian standard juste : lsb-base
[ -x "/usr/bin/lsb_release" ] && local description=$(lsb_release -ds)
local uname=$(uname -rmo)
local parametreKernel=$(sed 's/root=[^ ]*//;s/[ ]\+/, /g;s/^BOOT_IMAGE=[^ ]*//' /proc/cmdline)
echo "dernier boot: $lastboot, uptime: $uptime""$rcmd"
[ $description ] && echo "description: $description""$rcmd"
echo "uname: $uname""$rcmd"
echo "parametreKernel: $parametreKernel""$rcmd"
}
fi_carte_reseau(){
netcards="$(lspci -nnk | grep -iEA 3 'network|ethernet')"
}
trim_quotes() { # thanks neofetch
trim_output="${1//\'}"
trim_output="${trim_output//\"}"
printf "%s" "$trim_output"
}
get_de() { # thanks neofetch
de="${XDG_CURRENT_DESKTOP/i3}"
de="${de/'X-'}"
de="${de/Budgie:GNOME/Budgie}"
# Fallback to using xprop.
[[ -n "$DISPLAY" && -z "$de" ]] && de="$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/')"
# Format strings
case "$de" in
"KDE_SESSION_VERSION"*) de="KDE${de/* = }" ;;
*"TDE_FULL_SESSION"*) de="Trinity" ;;
*"MUFFIN"* | "Cinnamon") de="$(cinnamon --version)"; de="${de:-Cinnamon}" ;;
*"xfce4"*) de="XFCE4" ;;
*"xfce5"*) de="XFCE5" ;;
esac
}
get_distro() { # thanks neofetch
[[ "$distro" ]] && return
case "$os" in
"Linux" | "GNU")
if type -p lsb_release >/dev/null; then
case "$distro_shorthand" in
"on") lsb_flags="-sir" ;;
"tiny") lsb_flags="-si" ;;
*) lsb_flags="-sd" ;;
esac
distro="$(lsb_release $lsb_flags)"
elif type -p guix >/dev/null; then
distro="GuixSD"
elif type -p crux >/dev/null; then
distro="$(crux)"
case "$distro_shorthand" in
"on") distro="${distro//version}" ;;
"tiny") distro="${distro//version*}" ;;
esac
else
# Source the os-release file
for file in /etc/os-release /usr/lib/os-release /etc/*release /usr/lib/*release; do
source "$file" && break
done
# Format the distro name.
case "$distro_shorthand" in
"on") distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;;
"tiny") distro="${NAME:-${DISTRIB_ID:-${TAILS_PRODUCT_NAME}}}" ;;
"off") distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;;
esac
# Workarounds for distros that go against the os-release standard.
[[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}' /etc/*ease /usr/lib/*ease)"
[[ -z "${distro// }" ]] && distro="$(awk -F '=' '{print $2; exit}' /etc/*ease /usr/lib/*ease)"
fi
grep -qi 'Debian' /etc/issue && distro="$(echo $distro | sed 's/"//g') $(cat /etc/debian_version)"
distro="$(trim_quotes "$distro")"
;;
esac
[[ -z "$distro" ]] && distro="$os (Unknown)"
}
fi_pastebinit(){
pastebinit -b http://markdownshare.com/ -i "$fileOutput"
}
fi__curl(){
curl -H "Accept: application/json" -X POST -F "text=<$fileOutput" https://markdownshare.com/create/
#-A, --user-agent and -e, --referer options
#If you wish to allow a post to expire then add an expire= parameter too:
#expire=Nh Expire in N hours.
#expire=Nd Expire in N days.
}
# initialisation
f__affichage
f__architecture || f__error "Architecture non supportée" "vous pouvez contacter contacter $projet $contact pour parfaire le script"
fileOutput="getInfo_rapport.md"
rcmd=" " # retour ligne markdown
f__requis "pastebinit"
os="$(uname -s)"
fileLogs="/var/log/sdeb_getFinfo.log"
dateRapport=$(date +"%d %b %Y %H:%M %z")
rm "$fileOutput" &>/dev/null
echo -e "# getInfo $version\n" > "$fileOutput"
echo -e "Rapport au $dateRapport sur $(uname -n)\n" >> "$fileOutput"
echo -e "## système" >> "$fileOutput"
fi_divers | tee -a "$fileOutput"
get_de && echo "DE: $de""$rcmd" | tee -a "$fileOutput"
get_distro && echo "distro: $distro""$rcmd" | tee -a "$fileOutput"
echo -e "## réseau" >> "$fileOutput"
fi_carte_reseau && echo "$netcards""$rcmd" | tee -a "$fileOutput"
fi__curl
echo
exit
{"link":"https://markdownshare.com/view/5b934dde-473e-4d34-b1e4-7d624cedca40",
"raw":"https://markdownshare.com/raw/5b934dde-473e-4d34-b1e4-7d624cedca40",
"edit":"https://markdownshare.com/edit/af25b45a5b945963223f8aeb773decf8",
"delete":"https://markdownshare.com/delete/af25b45a5b945963223f8aeb773decf8",
"id":"5b934dde-473e-4d34-b1e4-7d624cedca40",
"auth":"af25b45a5b945963223f8aeb773decf8"
}
bug markdownshare:
"```" n'est pas interprété en <pre><code>
style.css ligne 167
pre {
padding:10px;
margin:0 0px 20px 0px;
font-size:0.8em
}