#!/bin/bash
##############################################################################
# screen-backlight
# -----------
# For when you are running leeenux on a Mac and it needs some help
#
# Usage:
# 	screen-backlight {up,down,total,off}
#
# :authors: Jess Frazelle, @jessfraz
# :date: 8 June 2015
# :version: 0.0.1
##############################################################################
set -e
set -o pipefail

if [ $UID -ne 0 ]; then
	echo "Please run this program as superuser"
	exit 1
fi

BLDIR=/sys/class/backlight/acpi_video0
GMDIR=/sys/class/backlight/gmux_backlight
if [[ ! -d $BLDIR ]]; then
	if [[ -d $GMDIR ]]; then
		BLDIR=$GMDIR
	else
		echo "Check what directory your backlight is stored in /sys/class/backlight/"
		exit 1
	fi
fi

BLFILE="$BLDIR/brightness"
BACKLIGHT=$(cat $BLFILE)
INCREMENT=15
SET_VALUE=0
MAX=$(cat "$BLDIR/max_brightness")

case $1 in

	up)
		TOTAL=$((BACKLIGHT + INCREMENT))
		if [ "$TOTAL" -gt "$MAX" ]; then
			exit 1
		fi
		SET_VALUE=1
		;;
	down)
		TOTAL=$((BACKLIGHT - INCREMENT))
		if [ "$TOTAL" -lt "0" ]; then
			exit 1
		fi
		SET_VALUE=1
		;;
	total)
		TEMP_VALUE=$BACKLIGHT
		while [ "$TEMP_VALUE" -lt "$MAX" ]; do
			TEMP_VALUE=$((TEMP_VALUE + 1))
			if [ "$TEMP_VALUE" -gt "$MAX" ]; then TEMP_VALUE=$MAX; fi
			echo "$TEMP_VALUE" > $BLFILE
		done
		;;
	off)
		TEMP_VALUE=$BACKLIGHT
		while [ "$TEMP_VALUE" -gt "0" ]; do
			TEMP_VALUE=$((TEMP_VALUE - 1))
			if [ "$TEMP_VALUE" -lt "0" ]; then TEMP_VALUE=0; fi
			echo "$TEMP_VALUE" > $BLFILE
		done
		;;
	*)
		echo "Use: screen-backlight up|down|total|off"
		;;
esac

if [ "$SET_VALUE" -eq "1" ]; then
	echo "$TOTAL" > $BLFILE
fi