#!/bin/bash

# SPDX-FileCopyrightText: 2023 Deminder <tremminder@gmail.com>
# SPDX-License-Identifier: GPL-3.0-or-later
#
# shutdowntimerctl - This script can configure the shutdown and rtc wake alarm schedule.
#
# This file is part of the gnome-shell extension ShutdownTimer@Deminder.

SHUTDOWN_BIN=/usr/sbin/shutdown
RTCWAKE_BIN=/usr/sbin/rtcwake

SHUTDOWN_MODE="-P"
if [ ! -z "$2" ] && [ "$2" -gt 0 ];then
	POSITIVE_VALUE="$2"
fi

function print_help() {
	echo "[help] (show this help)" >&2
	echo "[shutdown|reboot|shutdown-cancel] {MINUTES}" >&2
	echo "[wake|wake-cancel] {MINUTES} (default: 0)" >&2
}

if [ "$#" -lt 1 ]; then
	print_help
	exit
fi

case "$1" in
	shutdown|reboot)
		if [[ "$1" = "reboot" ]]; then
			SHUTDOWN_MODE="-r"
		fi
		$SHUTDOWN_BIN "$SHUTDOWN_MODE" "$POSITIVE_VALUE"
		;;
	shutdown-cancel)
		$SHUTDOWN_BIN -c
		;;
	wake)
		$RTCWAKE_BIN --date +${POSITIVE_VALUE:-0}min --mode no
		;;
	wake-cancel)
		$RTCWAKE_BIN --mode disable
		;;
	--version)
		echo 1
		;;
	-h|help)
		print_help
		;;
	*)
		echo "Invalid argument: $1" >&2
		print_help
esac

