#!/bin/bash

pkgs="acpi-support"

datadir=$(cd $(dirname "$0") && pwd)

. ${datadir}/common.fnc

# Check
if [ "$1" == "-c" ] ; then
	if [ $(_check ${pkgs}) == "n" ] ; then
		echo FALSE
	else
		line=$(cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT=)
		
		if   [ $(echo $line | grep '[=\" ]acpi=off'   | wc -l) -gt 0 ] ; then
			echo FALSE
		elif [ $(echo $line | grep '[=\" ]acpi=force' | wc -l) -gt 0 ] ; then
			echo TRUE
		fi
	fi
	
# Install
elif [ "$1" == "-i" ] ; then
	_install ${pkgs}
	
	echo -----
	line=$(cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT=)
	
	if [ $(echo $line | grep '[=\" ]acpi=off' | wc -l) -gt 0 ] ; then
		if sudo sed -i "s/acpi=off/acpi=force/" /etc/default/grub ; then
			_log "acpi=forceに変更しました。"
		else
			_err "acpi=forceに変更できませんでした。"
		fi
	else
		if [ $(echo $line | grep '[=\" ]acpi=' | wc -l) -gt 0 ] ; then
			if sudo sed -i "s/acpi=[^ \n]*/acpi=force/" /etc/default/grub ; then
				_log "acpi=forceに変更しました。"
			else
				_err "acpi=forceに変更できませんでした。"
			fi
		else
			if sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"acpi=force /' /etc/default/grub ; then
				_log "acpi=forceに変更しました。"
			else
				_err "acpi=forceに変更できませんでした。"
			fi
		fi
	fi
	
	echo
	echo 設定を反映しています...
	echo
	if sudo update-grub ; then
		_log "GRUBの設定反映に成功しました。"
	else
		_err "GRUBの設定反映に失敗しました。（/etc/default/grub の設定ミス？）"
	fi
	echo
	
# Purge
elif [ "$1" == "-p" ] ; then
	echo -----
	line=$(cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT=)
	
	if [ $(echo $line | grep '[=\" ]acpi=off' | wc -l) -gt 0 ] ; then
		if sudo sed -i "s/acpi=off/acpi=off/" /etc/default/grub ; then
			_log "acpi=forceに変更しました。"
		else
			_err "acpi=forceに変更できませんでした。"
		fi
	else
		if [ $(echo $line | grep '[=\" ]acpi=' | wc -l) -gt 0 ] ; then
			if sudo sed -i "s/acpi=[^ \n]*/acpi=off/" /etc/default/grub ; then
				_log "acpi=forceに変更しました。"
			else
				_err "acpi=forceに変更できませんでした。"
			fi
		else
			if sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"acpi=off /' /etc/default/grub ; then
				_log "acpi=forceに変更しました。"
			else
				_err "acpi=forceに変更できませんでした。"
			fi
		fi
	fi
	
	echo
	echo 設定を反映しています...
	echo
	if sudo update-grub ; then
		_log "GRUBの設定反映に成功しました。"
	else
		_err "GRUBの設定反映に失敗しました。（/etc/default/grub の設定ミス？）"
	fi
	echo
fi
