#!/bin/sh

if ! kldstat | grep -q asmc.ko
then
  kldload asmc
fi

TEMP=$(sysctl -n dev.cpu.0.temperature | cut -c 1-2)
SPEED=$(sysctl -n dev.asmc.0.fan.0.targetspeed)

if (( ${TEMP} <= 56 )) && [ ${SPEED} -ne 2000 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=2000 > /dev/null &&
	logger -t asmcfan "Fan speed set to 2000 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 57 && ${TEMP} <= 62 )) && [ ${SPEED} -ne 2400 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=2800 > /dev/null &&
	logger -t asmcfan "Fan speed set to 2800 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 63 && ${TEMP} <= 68 )) && [ ${SPEED} -ne 2800 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=3000 > /dev/null &&
	logger -t asmcfan "Fan speed set to 3000 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 69 && ${TEMP} <= 84 )) && [ ${SPEED} -ne 3200 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=3200 > /dev/null &&
	logger -t asmcfan "Fan speed set to 3200 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 83 && ${TEMP} <= 88 )) && [ ${SPEED} -ne 4000 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=4000 > /dev/null &&
	logger -t asmcfan "Fan speed set to 4000 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 89 && ${TEMP} <= 92 )) && [ ${SPEED} -ne 4400 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=4400 > /dev/null &&
	logger -t asmcfan "Fan speed set to 4400 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 93 && ${TEMP} <= 96 )) && [ ${SPEED} -ne 5000 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=5000 > /dev/null &&
	logger -t asmcfan "Fan speed set to 5000 RPM (temp: ${TEMP}°C)"
	exit 0

elif (( ${TEMP} >= 97 )) && [ ${SPEED} -ne 6000 ]; then
	sysctl dev.asmc.0.fan.0.minspeed=6000 > /dev/null &&
	logger -t asmcfan "Hot stuff! Fan speed set to 6000 RPM (temp: ${TEMP}°C)"
	exit 0
else
	exit 1
fi

