#!/bin/sh

checkBase() {
	[ -r "/proc/device-tree/info/base-board" ] || return 1
	[ "SLC" = "$(cat "/proc/device-tree/info/base-board")" ]
}

checkRev() {
	: "${rev:=$(cat /tmp/telem/board/rev)}"
	[ "${rev}" -ge 5 ]
}

init() {
	PWRIN="$(gpiofind 'PWR-IN')" || return 1
	AT1="$(  gpiofind 'BAT-T1')" || return 1
	BATSW="$(gpiofind 'BAT-SW')" || return 1
	return 0
}

pwrOK() {
	[ "$(gpioget $PWRIN)" = '0' ]
}

batOK() {
	[ "$(gpioget $AT1)" = '1' ]
}

batOFF() {
	gpioset $BATSW=0
}

stop() {
	checkBase || return
	checkRev  || return
	# Just in case kill telem-pwr, otherwise GPIO pins may be in use
	killall -9 telem-pwr
	init  || return
	pwrOK && return
	batOK && return
	echo "S00battery-off: Battery OFF" >> /var/log/messages
	sync
	batOFF
}

case "$1" in
	start)
		: # do nothing
		;;
	stop)
		stop
		;;
	*)
		echo "Usage: $0 {start|stop}"
		exit 1
esac
