#!/bin/bash

if [[ ${#} -ne 1 ]] ; then
        echo "Expected 1 argument"
        exit 1
fi

echo "${1}" | egrep -q "^[A-Z0-9]{,4}$"
if [[ ${?} -ne 0 ]] ; then
        echo "Invalid device"
        exit 1
fi

grep -q "${1}" /proc/acpi/wakeup

if [[ ${?} -ne 0 ]] ; then
        echo "Invalid device"
        exit 1
fi

status=$(grep "^${1}" /proc/acpi/wakeup | awk '{print $3}')
if [[ ${status} == "*disabled" ]] ;
        exit 0
else
        echo "${1}" > /proc/acpi/wakeup
fi

#Съвременните компютри могат да влизат в различни режими за енергоспестяване
#(suspend) и излизат от този режим (wake-up) при настъпването на определени събития. Linux kernel
#предоставя специален виртуален файл /proc/acpi/wakeup, чрез който може да се проверява или
#променя настройката за “събуждане” при при настъпване на различни събития. Тъй като този файл
#е интерфейс към ядрото, “четенето” от файла и “писането” във файла изглеждат различно.
#За улеснение на задачата ще ползваме опростено описание на този файл.
#Под whitespace разбираме произволна комбинация от табове и интервали.
#При четене от файла изходът представлява четири колони, разделени с whitespace, в полетата не
#може да има whitespace; първият ред е header на съответната колона.
#Примерно съдържание на файла:
#Device S-state Status Sysfs node
#GLAN S4 *enabled pci:0000:00:1f.6
#XHC S3 *enabled pci:0000:00:14.0
#XDCI S4 *disabled
#LID S4 *enabled platform:PNP0C0D:00
#HDAS S4 *disabled pci:0000:00:1f.3
#RP01 S4 *enabled pci:0000:00:1c.0
#където:
#• първата колона дава уникално име на устройство, което може да събуди машината, като името
#е ограничено до четири знака главни латински букви и цифри;
#• третата колона описва дали това устройство може да събуди машината. Възможните стойности
#са enabled/disabled, предхождани от звездичка;
#• втората и четвъртата колона ги игнорираме в рамките на задачата.
#При записване на име на устройство във файла /proc/acpi/wakeup, неговото състояние се променя
#от disabled на enabled или обратно.
#Например, ако /proc/acpi/wakeup изглежда както примера по-горе, при изпълнение на командата
#echo XHC > /proc/acpi/wakeup, третият ред ще се промени на:
#XHC S3 *disabled pci:0000:00:14.0
#При изпълнение на командата echo HDAS > /proc/acpi/wakeup, шестият ред ще се промени на:
#HDAS S4 *enabled pci:0000:00:1f.3
#Напишете shell скрипт, който при подаден първи параметър име на устройство (напр. LID) настройва
#съответното устройство да не може да събуди машината.