]> git.ipfire.org Git - people/ms/network.git/blame - src/functions/functions.leds
Drop code for radvd
[people/ms/network.git] / src / functions / functions.leds
CommitLineData
208f7452
MT
1#!/bin/bash
2###############################################################################
3# #
4# IPFire.org - A linux based firewall #
5# Copyright (C) 2018 IPFire Network Development Team #
6# #
7# This program is free software: you can redistribute it and/or modify #
8# it under the terms of the GNU General Public License as published by #
9# the Free Software Foundation, either version 3 of the License, or #
10# (at your option) any later version. #
11# #
12# This program is distributed in the hope that it will be useful, #
13# but WITHOUT ANY WARRANTY; without even the implied warranty of #
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15# GNU General Public License for more details. #
16# #
17# You should have received a copy of the GNU General Public License #
18# along with this program. If not, see <http://www.gnu.org/licenses/>. #
19# #
20###############################################################################
21
22led_exists() {
23 local led="${1}"
24 assert isset led
25
26 file_exists "/sys/class/leds/${led}"
27}
28
29led_get_supported_triggers() {
30 local led="${1}"
31
32 if ! led_exists "${led}"; then
33 error "LED ${led} does not exist"
34 return ${EXIT_ERROR}
35 fi
36
37 local triggers="$(fread "/sys/class/leds/${led}/trigger")"
38
39 # Filter markers for active trigger
40 print "${triggers//[\[\]]/}"
41}
42
43led_set_trigger() {
44 local led="${1}"
45 local trigger="${2}"
46
47 assert isset led
48 assert isset trigger
49
50 local supported_triggers="$(led_get_supported_triggers "${led}")"
51 if ! list_match "${trigger}" ${supported_triggers}; then
52 log DEBUG "Trigger ${trigger} is not supported by LED ${led}"
53 return ${EXIT_ERROR}
54 fi
55
56 log DEBUG "Setting LED trigger ${trigger} for ${led}"
57 fwrite "/sys/class/leds/${led}/trigger" "${trigger}"
58}