#!/bin/sh

# Created by jiaqiang.ye@lnxall.com
# Simple CPU Temperature/Freqency Dumper
# 2025/07/03

TEMP_OUT=''
FREQ_OUT=''
cpu_get_temp() {
	cd /sys/class/thermal
	[ $? -ne 0 ] && return 1
	local TEMPOUT="$(cat thermal_zone*/temp 2>/dev/null)"
	[ -z "${TEMPOUT}" ] && return 2
	TEMP_OUT="${TEMPOUT}"
	return 0
}

cpu_get_freq() {
	cd /sys/devices/system/cpu
	[ $? -ne 0 ] && return 1
	local FREQOUT="$(cat cpu*/cpufreq/cpuinfo_cur_freq 2>/dev/null)"
	[ -z "${FREQOUT}" ] && return 2
	FREQ_OUT="${FREQOUT}"
	return 0
}

mainfunc() {
	cpu_get_temp
	local r=$?
	if [ $r -eq 0 ] ; then
		echo "CPU Temperature:"
		echo "${TEMP_OUT}"
	else
		echo "Error, CPU temperature not found."
	fi
	local linestr="======================="
	echo ${linestr}

	cpu_get_freq
	r=$?
	if [ $r -eq 0 ] ; then
		echo "CPU Frequency:"
		echo "${FREQ_OUT}"
	else
		echo "Error, CPU frequnecy not found."
	fi
	echo ${linestr}
	exit 0
}

mainfunc
