#!/bin/sh
#
# Runs poweroff after printing a message to the log, setting the LEDs to red
# to indicate a failure, and waiting for logs to upload.
#

if [ "$#" = 0 ]; then
  echo "Usage: $0 <message>" >&2
  exit 1
fi

exec >&2

echo "<1>poweroff:" "$@" >/dev/kmsg
if [ -e /config/NO-POWEROFF ]; then
  echo "<1>poweroff: disabled by /config/NO-POWEROFF." >/dev/kmsg
  exit 0
fi

power_off()
{
  QUIET=1 stop harddisk ifplugd wan
  QUIET=1 powerdown wan
  echo "Powering off."
  poweroff
}

timeout()
{
  echo "Timed out; powering off immediately."
  power_off
}

# This runs just in case we encounter trouble during the next steps.
# This background task is double-nested so that it doesn't count toward
# the 'wait' command below.
trap timeout USR1
pid=$$
( ( sleep 30; kill -USR1 $pid ) & )

: >/tmp/gpio/ledcontrol/halted
echo "Waiting for logs to sync."
(
  upload-logs-and-wait
  echo "Logs uploaded."
) &
wait

power_off
