#!/usr/bin/bash

CU='\033[4m'    # underline
C0='\033[0m'    # clear
C1='\033[31m'   # red
C2='\033[32m'   # green
C3='\033[33m'   # yellow
C4='\033[34m'   # blue

MODEL=$(/usr/bin/tr --delete '\0' < '/sys/firmware/devicetree/base/model')
TEMPERATURE=$(( $(/usr/bin/cat '/sys/class/thermal/thermal_zone0/temp') / 100 ))
TEMPERATURE=$(/usr/bin/echo "${TEMPERATURE}" | /usr/bin/sed --expression='s/\b[0-9][0-9]/&./g')
PROCESSOR_VENDOR=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'Vendor ID:' | /usr/bin/sed --expression='s/Vendor ID:[[:space:]]*//g')
PROCESSOR_MODEL=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'Model name:' | /usr/bin/sed --expression='s/Model name:[[:space:]]*//g')
PROCESSOR_ARCHITECTURE=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'Architecture:' | /usr/bin/sed --expression='s/Architecture:[[:space:]]*//g')
PROCESSOR_CORES=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'Core(s) per cluster:' | /usr/bin/sed --expression='s/Core(s) per cluster:[[:space:]]*//g')
PROCESSOR_THREADS=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'Thread(s) per core:' | /usr/bin/sed --expression='s/Thread(s) per core:[[:space:]]*//g')
PROCESSOR_FREQUENCY=$(/usr/bin/lscpu | /usr/bin/grep --word-regexp 'CPU max MHz:' | /usr/bin/sed --expression='s/CPU max MHz:[[:space:]]*//g')
RAM=$(/usr/bin/free --mebi | /usr/bin/mawk 'NR==2{printf "%sM / %sM (%.2f%%)", $3,$2,$3*100/$2 }')
SWAP=$(/usr/bin/free --mebi | /usr/bin/mawk 'NR==3{printf "%sM / %sM (%.2f%%)", $3,$2,$3*100/$2 }')
ZRAM=$(/usr/sbin/swapon --bytes --raw | /usr/bin/mawk '$1=="/dev/zram0"{used=int($4/1048576); size=int($3/1048576); printf "%dM / %dM (%.2f%%)\n", used, size, (size>0? used*100/size : 0)}')
ZSWAP=$(/usr/sbin/swapon --bytes --raw | /usr/bin/mawk '$1=="/var/cache/dphys-swapfile"{used=int($4/1048576); size=int($3/1048576); printf "%dM / %dM (%.2f%%)\n", used, size, (size>0? used*100/size : 0)}')
BOOT=$(/usr/bin/grep '/boot' '/etc/fstab' | /usr/bin/mawk '$1 !~ /^#/ && $2 ~ /^[/]/ {print $2}')
SDP1=$(/usr/bin/df --human-readable | /usr/bin/mawk '$NF=="'${BOOT}'"{printf "%s / %s (%s)", $3,$2,$5}')
SDP2=$(/usr/bin/df --human-readable | /usr/bin/mawk '$NF=="/"{printf "%s / %s (%s)", $3,$2,$5}')

/usr/bin/echo -e "\t${C3}Model:${C0}\t\t\t\t\t\t${MODEL}"
/usr/bin/echo -e "\t${C3}Temperature:${C0}\t\t\t\t\t${TEMPERATURE}°C"
/usr/bin/echo -e "\t${C3}Processor:${C0}\t\t\t\t\t${PROCESSOR_VENDOR} ${PROCESSOR_MODEL} (${PROCESSOR_ARCHITECTURE})"
/usr/bin/echo -e "\t- ${C3}Cores:${C0}\t\t\t\t\t${PROCESSOR_CORES}"
/usr/bin/echo -e "\t- ${C3}Threads:${C0}\t\t\t\t\t${PROCESSOR_THREADS}"
/usr/bin/echo -e "\t- ${C3}Frequency:${C0}\t\t\t\t\t${PROCESSOR_FREQUENCY} MHz"
/usr/bin/echo -e "\t${C3}Ram:${C0}\t\t\t\t\t\t${RAM}"
/usr/bin/echo -e "\t${C3}Swap:${C0}\t\t\t\t\t\t${SWAP}"
/usr/bin/echo -e "\t- ${C3}ZRam:${C0}\t\t\t\t\t\t${ZRAM}"
/usr/bin/echo -e "\t- ${C3}ZSwap:${C0}\t\t\t\t\t${ZSWAP}"
/usr/bin/echo -e "\t${C3}SD (Boot):${C0}\t\t\t\t\t${SDP1}"
/usr/bin/echo -e "\t${C3}SD (Root):${C0}\t\t\t\t\t${SDP2}"
