#!/bin/sh
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color

sys_uptime() {
	awk '{days=int($1/86400); hours=int(($1%86400)/3600); minutes=int(($1%3600)/60); if (days > 0) printf days " days "; if (hours > 0) printf hours " hours "; printf minutes " minutes\n"}' /proc/uptime
}

sys_memory() {
	free -k | awk '/Mem:/ {used=($3+$6)/1024; total=$2/1024; printf "%.0f MiB / %.0f MiB\n", used, total}'
}

sys_disk_space() {
	df -m | grep /nvdata | awk '{used=$3; total=$2; printf "%d MiB / %d MiB\n", used, total}'
}

fwinfo() {
	awk -F': ' "/$1/ { print \$2 }" /etc/fw-info | tr -d '",'
}

get_board_name() {
    plat=$(fwinfo platform)

    case "$plat" in
        "aml")
            echo "AMLogic"
            ;;
        "bb")
            echo "BeagleBone"
            ;;
        "cv")
            echo "Cvitek"
            ;;
        "stm")
            echo "STM"
            ;;
        "xil")
            echo "Xilinx"
            ;;
        *)
            echo "Unknown"
            ;;
    esac
}


echo -e "${GREEN}  _   _           _                           ____   _____ ${NC} ${RED} Miner:${NC} $(fwinfo miner)"
echo -e "${GREEN} | | | | __ _ ___| |__   ___ ___  _ __ ___   / __ \ / ____|${NC} ${RED} Board:${NC} $(get_board_name)"
echo -e "${GREEN} | |_| |/ _\` / __| '_ \ / __/ _ \| '__/ _ \ | |  | | (___  ${NC} ${RED} Version:${NC} $(fwinfo fw_version)"
echo -e "${GREEN} |  _  | (_| \__ \ | | | (_| (_) | | |  __/ | |  | |\___ \ ${NC} ${RED} Uptime:${NC} $(sys_uptime)"
echo -e "${GREEN} |_| |_|\__,_|___/_| |_|\___\___/|_|  \___| | |__| |____) |${NC} ${RED} RAM Memory:${NC} $(sys_memory)"
echo -e "${GREEN}                                             \____/|_____/ ${NC} ${RED} Disk Memory:${NC} $(sys_disk_space)"
