diff options
author | Christian Pointner <equinox@spreadspace.org> | 2015-07-26 17:13:42 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2015-07-26 17:13:42 (GMT) |
commit | 1324242685b63a511be3b3625f78e1ebf2dafc76 (patch) | |
tree | b83d4947415757fba945b7a91a25230c9d044144 /mode-watch.lua | |
parent | c6bbdfbdde366bfbb37858e7dc9e0fc351595023 (diff) |
moved sources to src/
Diffstat (limited to 'mode-watch.lua')
-rw-r--r-- | mode-watch.lua | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/mode-watch.lua b/mode-watch.lua deleted file mode 100644 index cf716cb..0000000 --- a/mode-watch.lua +++ /dev/null @@ -1,119 +0,0 @@ --- --- rhctl --- --- Copyright (C) 2009-2014 Christian Pointner <equinox@helsinki.at> --- --- This file is part of rhctl. --- --- rhctl is free software: you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation, either version 3 of the License, or --- any later version. --- --- rhctl is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with rhctl. If not, see <http://www.gnu.org/licenses/>. --- - -package.path = package.path .. ';/usr/share/rhctl/?.lua' - -socket = require("socket") -utils = require("utils") - -function set_master_led() - os.execute("/sbin/led.sh set master") - os.execute("/sbin/led.sh clear standby") -end - -function set_standby_led() - os.execute("/sbin/led.sh clear master") - os.execute("/sbin/led.sh set standby") -end - -function clear_leds() - os.execute("/sbin/led.sh clear master") - os.execute("/sbin/led.sh clear standby") -end - -current_mode = nil - -function process_cmd(message) - log.printf(log.DEBUG, "received message: '%s'", message) - - local new_mode = nil - local exps = { "Current Mode: (%a+)", "new Mode: (%a+)" } - for _, exp in ipairs(exps) do - new_mode = string.match(message, exp) - if(new_mode) then - new_mode = string.lower(new_mode) - if(new_mode == "master") then - set_master_led() - break - else - if(new_mode == "standby") then - set_standby_led() - break - end - end - end - end - - if(new_mode and new_mode ~= current_mode) then - log.printf(log.NOTICE, "mode is now " .. new_mode) - if(current_mode == nil) then - utils.send_mail("logs@helsinki.at", "[RHCTL] (re)started mode is now " .. new_mode, - "RHCTL just (re)started current mode is " .. new_mode) - else - utils.send_mail("logs@helsinki.at", "[RHCTL] mode changed to " .. new_mode, - "RHCTL just switched from " .. current_mode .. " to " .. new_mode) - end - current_mode = new_mode - end - - return 0 -end - -function main_loop(opt) - log.printf(log.NOTICE, "main_loop started") - local sig = signal.init() - local cmdfd = cmd.init() - - cmd.send_string("listen mode"); - cmd.send_string("status"); - - clear_leds() - - local return_value = 0 - while return_value == 0 do - local readable, _, err = socket.select({ sig , cmdfd }, nil) - if(err) then - log.printf(log.ERROR, "select returned with error: %s", err) - return_value = -1 - else - for _, input in ipairs(readable) do - if(input == sig) then - return_value = signal.handle() - if(return_value == 1) then break end - else - if(input == cmdfd) then - return_value = cmd.recv_data(process_cmd) - if(return_value ~= 0) then break end - else - log.printf(log.ERROR, "select returned invalid handle??") - return_value = -1 - break; - end - end - end - end - end - - clear_leds() - - signal.stop() - return return_value -end |