aboutsummaryrefslogtreecommitdiffstats
path: root/config/blinkled8/blinkled.inc
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2013-08-28 16:16:38 -0400
committerjim-p <jimp@pfsense.org>2013-08-28 16:16:38 -0400
commit429adb3b2dc66541670245bb63e0b952fda0617b (patch)
treecf4b996e3f1bd78bbf287356a59e270270ef5489 /config/blinkled8/blinkled.inc
parent4e3879cf61b174570a0a27ab84fd32040e044222 (diff)
downloadpfsense-packages-429adb3b2dc66541670245bb63e0b952fda0617b.tar.gz
pfsense-packages-429adb3b2dc66541670245bb63e0b952fda0617b.tar.bz2
pfsense-packages-429adb3b2dc66541670245bb63e0b952fda0617b.zip
Teach blinkled how to write an rcfile since it claims to use one in its service definition.
Diffstat (limited to 'config/blinkled8/blinkled.inc')
-rw-r--r--config/blinkled8/blinkled.inc37
1 files changed, 34 insertions, 3 deletions
diff --git a/config/blinkled8/blinkled.inc b/config/blinkled8/blinkled.inc
index d50cc022..f466da94 100644
--- a/config/blinkled8/blinkled.inc
+++ b/config/blinkled8/blinkled.inc
@@ -1,10 +1,36 @@
<?php
require_once("functions.inc");
+function blinkled_rcfile() {
+ global $config;
+ $blinkled_config = $config['installedpackages']['blinkled']['config'][0];
+ $stop = <<<EOD
+if [ `/bin/pgrep blinkled | /usr/bin/wc -l` != 0 ]; then
+ /usr/bin/killall -9 blinkled
+ while [ `/bin/pgrep blinkled | /usr/bin/wc -l` != 0 ]; do
+ sleep 1
+ done
+ fi
+EOD;
+
+ $start = "{$stop}\n";
+ if (($blinkled_config['enable_led2']) && ($blinkled_config['iface_led2']))
+ $start .= "\t" . blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led2']), 2, true) . "\n";
+ if (($blinkled_config['enable_led3']) && ($blinkled_config['iface_led3']))
+ $start .= "\t" . blinkled_launch(convert_friendly_interface_to_real_interface_name($blinkled_config['iface_led3']), 3, true) . "\n";
+
+ conf_mount_rw();
+ write_rcfile(array(
+ 'file' => 'blinkled.sh',
+ 'start' => $start,
+ 'stop' => $stop)
+ );
+ conf_mount_ro();
+}
+
function blinkled_running () {
return ((int)exec('pgrep blinkled | wc -l') > 0);
}
-
function sync_package_blinkled() {
global $config;
$blinkled_config = $config['installedpackages']['blinkled']['config'][0];
@@ -16,10 +42,15 @@ function sync_package_blinkled() {
if(!blinkled_running()) {
blinkled_start();
}
+ blinkled_rcfile();
}
-function blinkled_launch($int, $led) {
- mwexec("/usr/local/bin/blinkled -i " . escapeshellarg($int) . " -l /dev/led/led" . escapeshellarg($led));
+function blinkled_launch($int, $led, $return = false) {
+ $cmd = "/usr/local/bin/blinkled -i " . escapeshellarg($int) . " -l " . escapeshellarg("/dev/led/led{$led}");
+ if ($return)
+ return $cmd;
+ else
+ mwexec($cmd);
}
function blinkled_start() {