From c0c3f2d4c9178925f66f6df9fb0e4fcb370a8890 Mon Sep 17 00:00:00 2001
From: John Crispin <john@openwrt.org>
Date: Thu, 25 Feb 2016 10:14:16 +0000
Subject: [PATCH] leds: support oneshot as well as timer triggers

oneshot and timer have the same configuration options, just a different
trigger name.

Signed-off-by: Karl Palsson <karlp@etactica.com>

SVN-Revision: 48770
---
 package/base-files/files/bin/config_generate    |  4 ++--
 .../files/lib/functions/uci-defaults.sh         | 17 +++++++++++++----
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index 92eb14bb11..28ba0e2694 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -303,11 +303,11 @@ generate_led() {
 			EOF
 		;;
 
-		timer)
+		timer|oneshot)
 			local delayon delayoff
 			json_get_vars delayon delayoff
 			uci -q batch <<-EOF
-				set system.$cfg.trigger='timer'
+				set system.$cfg.trigger='$type'
 				set system.$cfg.delayon='$delayon'
 				set system.$cfg.delayoff='$delayoff'
 			EOF
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index de3f180cbb..84b78b84ef 100755
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -478,17 +478,18 @@ ucidef_set_led_ide() {
 	json_select ..
 }
 
-ucidef_set_led_timer() {
+__ucidef_set_led_timer() {
 	local cfg="led_$1"
 	local name="$2"
 	local sysfs="$3"
-	local delayon="$4"
-	local delayoff="$5"
+	local trigger="$4"
+	local delayon="$5"
+	local delayoff="$6"
 
 	json_select_object led
 
 	json_select_object "$1"
-	json_add_string type timer
+	json_add_string type "$trigger"
 	json_add_string name "$name"
 	json_add_string sysfs "$sysfs"
 	json_add_int delayon "$delayon"
@@ -498,6 +499,14 @@ ucidef_set_led_timer() {
 	json_select ..
 }
 
+ucidef_set_led_oneshot() {
+	__ucidef_set_led_timer $1 $2 $3 "oneshot" $4 $5
+}
+
+ucidef_set_led_timer() {
+	__ucidef_set_led_timer $1 $2 $3 "timer" $4 $5
+}
+
 ucidef_set_led_rssi() {
 	local cfg="led_$1"
 	local name="$2"
-- 
GitLab