Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
- SCRIPT_PATH="${0}"
- #==================================================
- # CGI RESOLUME CONTROL PANEL IN BASH BY FLIP HESS
- #
- # This program 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.
- #
- # This program 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 Library General Public License for more details.
- #
- # http://www.gnu.org/licenses/gpl.txt
- #
- #==================================================
- URL="http://${HTTP_HOST}/cgi-bin/resolume"
- NODES="172.16.15.1 172.16.15.2 172.16.15.3 127.0.0.1"
- echo -e "Content-type: text/html\n\n"
- # exit function
- function die()
- {
- echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">Error in ${SCRIPT_PATH}:\n${1}</div>"
- exit 1
- }
- function fCheck()
- {
- # checken nrpe bin
- [ -x ./check_nrpe ] || die "This plugin depends on /usr/lib/nagios/plugins/check_nrpe"
- return 0
- }
- # arg1 = node, arg2 = bg color, arg3 = status
- function fButton()
- {
- local NODE="${1}"
- local COLOR="${2}"
- local STATUS="${3}"
- local OUTPUT="${4}"
- echo -e "
- <td colspan=\"5\" bgcolor=\"${COLOR}\"><font color=\"black\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=view&args=none\">
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Node: ${NODE}\"></form><br><br>
- <b>Status: ${STATUS}</b><br>
- <b>Output: ${OUTPUT}</b><br>
- </td>"
- }
- # create index
- function fHeader()
- {
- # index
- echo -e "
- <HTML>
- <HEAD>
- <TITLE>Resolume CGI Panel</TITLE>
- </HEAD>
- <BODY>
- <body bgcolor=\"#000000\"
- <body link=\"#00FFFF\">
- <body vlink=\"#00FFFF\">
- <body alink=\"#00FFFF\">
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"100%\" cellpadding=\"2\" cellspacing=\"2\">
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\" bgcolor=\"#000\">
- <font color=\"#CFCFCF\"/>
- <center><h1>Resolume Control App</h1></center>
- <center><i>CGI Control For Resolume 2!</i></center>
- <br>"
- # loopje kleur per status
- for NODE in ${NODES}
- do
- # check if online
- OUTPUT="$( fGetStatus "${NODE}" )"
- XST="${?}"
- if [ "${XST}" = 0 ] ; then
- fButton "${NODE}" "#00FFFF" "Online" "${OUTPUT}"
- elif [ "${XST}" = 2 ] ; then
- fButton "${NODE}" "#444" "Offline" "${OUTPUT}"
- else
- fButton "${NODE}" "#777" "Unknown" "${OUTPUT}"
- fi
- done
- # derde veld, titel
- echo -e "
- <td colspan=\"5\" bgcolor=\"${COLOR}\"><font color=\"black\"/>
- <font color=\"#CFCFCF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi\">
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Home\"></form><br><br>
- <b>Home</b>
- </td>
- </tr>
- </table>"
- }
- # create status window
- function fStatusWindow()
- {
- # check for query string and show custom lines in status window
- if [ "X${QUERY_STRING}" != "X" ]; then
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\" bgcolor=\"#000\">
- <font color=\"#CFCFCF\"/>
- ${LINE1}
- ${LINE2}
- </td>
- </tr>
- </table>"
- else
- # echo default message in status window
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\" bgcolor=\"#000\">
- <font color=\"#CFCFCF\"/>
- <div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Resolume remote control loaded</div>\n
- </td>
- </tr>
- </table>"
- fi
- return 0
- }
- # More layout and EOF
- function fFooter()
- {
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\">
- <font color=\"#FFF\" link/>
- <a href=\"${URL}/control.cgi?node=none&control=credits&args=none\"\">:)</a><br>
- </td>
- <td colspan=\"1\">
- <font color=\"#FFF\"/>
- <center>CGI Bash Script Resolume Control Panel Version 1.1<br>
- <i>Resolume control by LightSquare.org 2012</i><br></center>
- </td>
- </tr>
- </table>
- </table>
- </BODY>
- </HTML>"
- return 0
- }
- # select window
- function SelectWindow()
- {
- NODE="${1}"
- echo -e "
- <HTML>
- <HEAD>
- <TITLE>Resolume CGI Panel</TITLE>
- </HEAD>
- <BODY>
- <body bgcolor=\"#000000\"
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"100%\" cellpadding=\"2\" cellspacing=\"2\">
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\" bgcolor=\"#000\">
- <font color=\"#CFCFCF\"/>
- <center><h1>Resolume Control App</h1></center>
- <center><i>CGI Control For Resolume 2!</i></center>
- <br>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=matrix&args=none\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Show Matrix\"></form><br><br>
- <b>Show Matrix</b>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=none\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Show Layers\"></form><br><br>
- <b>Show Layers</b>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=deck&args=none\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Show Decks\"></form><br><br>
- <b>Show Decks</b>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=other&args=none\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Other Options\"></form><br><br>
- <b>Other Options</b>
- </td>
- <td bgcolor=#000>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"Home\"></form><br><br>
- <b>Home</b>
- </td>
- </tr>
- </table>"
- return 0
- }
- # function fShowDecks
- function fShowDecks()
- {
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"1%\" cellpadding=\"2\" cellspacing=\"2\">"
- for NUM in $( seq -w 8 )
- do
- { [ "${NUM}" = 1 ] || [ "${NUM}" = 5 ]; } && echo -e "<tr>"
- echo -e "
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=deck&args=select_deck_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Select Deck ${NUM}\"></form>
- </td>"
- { [ "${NUM}" = 4 ] || [ "${NUM}" = 8 ]; } && echo -e "</tr>"
- done
- echo -e "</table>"
- return 0
- }
- # function fShowLayers
- function fShowLayers()
- {
- local NODE="${1}"
- # for lusje om voor 3 layers een rij knoppen uit te spugen
- for NUM in $( seq -w 3 )
- do
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"1%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td bgcolor=#777>
- <font color=\"#000000\"/>
- <center><b>Layer:</b><br><h1> ${NUM}</h1></center>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_select_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Select\n Layer ${NUM}\"></form>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_faderfull_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Toggle Fader\n at Full\"></form>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_onoff_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Toggle On/Off\nLayer ${NUM}\"></form>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_up_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 50px; width: 100px\" type=\"submit\" value=\"Up\"></form>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_down_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 50px; width: 100px\" type=\"submit\" value=\"Down\"></form>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_clear_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Clear\"></form>
- </td>
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_red_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 32px; width: 100px\" type=\"submit\" value=\"Red\"></form>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_green_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 32px; width: 100px\" type=\"submit\" value=\"Green\"></form>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=layer&args=toggle_blue_layer_${NUM}&proceed=yes\" >
- <center><input style=\"height: 32px; width: 100px\" type=\"submit\" value=\"Blue\"></form>
- </td>
- </tr>
- </table>"
- done
- return 0
- }
- # fcuntion printbuttons
- function fPrintMatrix()
- {
- local NODE="${1}"
- for NUM in $(seq -w 20 )
- do
- if [ "${NUM}" = 01 ] || [ "${NUM}" = 06 ] || [ "${NUM}" = 11 ] ||[ "${NUM}" = 16 ] ; then
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"1%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>"
- fi
- echo -e "
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=matrix&args=toggle_matrix_${NUM}&proceed=yes\" >
- <center><input style=\"height: 100px; width: 100px\" type=\"submit\" value=\"Toggle\n${NUM}\"></form>
- </td>"
- if [ "${NUM}" = 5 ] || [ "${NUM}" = 10 ] ||[ "${NUM}" = 15 ] || [ "${NUM}" = 20 ] ; then
- echo -e "
- </tr>
- </table>"
- fi
- done
- return 0
- }
- # function fGetStatus
- function fGetStatus()
- {
- local NODE="${1}"
- ./check_nrpe -H "${NODE}" -t 1
- return "${?}"
- }
- # index page
- function fShowIndex()
- {
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\">
- <font color=\"#FFF\"/>
- <center>
- <br>
- </td>
- </tr>
- </table>"
- return 0
- }
- # index page
- function fShowCredits()
- {
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\">
- <font color=\"#FFF\"/>
- <br>
- <b>Usage:</b><br>
- This is a control unit for resolume. It is bash written and used as a cgi script.<br>
- You can use this to control resolume 2.4, using ns++ client from nagios and autohotkeys.exe on the windows side.<br>
- On the server side, you need check_nrpe installed and copied to the local cgi-bin folder.
- With some editting you can use this script as a template for any bash controled web framework.<br>
- <br>
- <a href=\"http://pastebin.com/Fh316rDY\" target=\"_Blank\" >Source @ Pastebin</a><br>
- <br>
- Enjoy it!<br><br>
- <i>By Flip Hess September 2012</i>
- </td>
- </tr>
- </table>"
- return 0
- }
- # Other page
- function fShowOther()
- {
- local NODE="${1}"
- local CONTROL="${2}"
- local ARGUMENT="${3}"
- local PROCEED="${4}"
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>"
- for BUTTON in toggle_chaos record_output toggle_screen_setup clear_all_layers shutdown_resolume shutdown_computer
- do
- # replace _ by "\ " and make first char of word appear with a capital
- NAME="$( echo "${BUTTON}" | sed -e 's/_/\ /g' -e 's/\b\(.\)/\u\1/g' -e 's/\ /\\n/g' )"
- echo -e "
- <td bgcolor=#777>
- <font color=\"#FFF\"/>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=confirm&args=${BUTTON}\" >
- <center><input style=\"height: 120px; width: 120px\" type=\"submit\" value=\"${NAME}\"></form><br><br>
- <b>${NAME}</b>
- </td>"
- done
- echo "</table>"
- return 0
- }
- # Nice output for status and actions
- function fMessage()
- {
- NODE="${1}"
- SHOUT="${2}"
- MSG="${3}"
- # set color
- if [ "${SHOUT}" = OK ]; then
- COLOR="#00FF00"
- elif [ "${SHOUT}" = ERROR ]; then
- COLOR="#FF0000"
- else
- COLOR="orange"
- fi
- # output succes
- echo -e "
- <table border=\"2\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"10\" cellspacing=\"10\">
- <tr>
- <td colspan=\"1\">
- <font color=\"${COLOR}\" size=\"14\"/>
- <b>${SHOUT}!</b>
- <br>
- </td>
- <td colspan=\"1\">
- <font color=\"#FFF\" size=\"6\"/>
- ${MSG}
- </td>
- <th>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=other&args=none\">
- <center><input style=\"height: 50px; width: 120px\" type=\"submit\" value=\"Back To\nOther Panel\"></form></td>
- </th>
- </tr>
- </table>"
- return 0
- }
- # Confirm window
- function fConfirm()
- {
- local NODE="${1}"
- local CONTROL="${2}"
- local ARGUMENT="${3}"
- local PROCEED="${4}"
- local COMMAND="./check_nrpe -H "${NODE}" -t 1"
- # check input
- [ "${CONTROL}" = confirm ] || die "Unknown input action!"
- # check input command
- [ "${ARGUMENT}" = toggle_chaos ] || \
- [ "${ARGUMENT}" = record_output ] || \
- [ "${ARGUMENT}" = toggle_screen_setup ] || \
- [ "${ARGUMENT}" = clear_all_layers ] || \
- [ "${ARGUMENT}" = shutdown_computer ] || \
- [ "${ARGUMENT}" = shutdown_resolume ] || die "Unknown input action!"
- # CONFIRMED action on input
- if [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = toggle_chaos ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )"; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- # CONFIRMED action on input
- elif [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = record_output ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )" ; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- # CONFIRMED action on input
- elif [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = toggle_screen_setup ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )" ; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- # CONFIRMED action on input
- elif [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = clear_all_layers ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )" ; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- # CONFIRMED action on input
- elif [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = shutdown_computer ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )" ; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- # CONFIRMED action on input
- elif [ "${PROCEED}" = yes ] && [ "${ARGUMENT}" = shutdown_resolume ]; then
- # Trap commando toggle_chaos af....
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )" ; then
- # output succes
- fMessage "${NODE}" "OK" "Succeeded to run ${ARGUMENT} for Node: ${NODE}<br> Output was: ${OUTPUT}!"
- else
- # else echo node not found
- fMessage "${NODE}" "ERROR" "Failed to run ${ARGUMENT} for Host: ${NODE}<br> Output was: ${OUTPUT}!"
- fi
- else
- # ask for confirmation
- echo -e "
- <table border=\"1\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"2\" cellspacing=\"2\">
- <tr>
- <td colspan=\"1\">
- <font color=\"#FF0000\" size=\"14\"/>
- <b>ATTENTION!</b>
- <br>
- </td>
- <td colspan=\"1\">
- <font color=\"#FFF\" size=\"6\"/>
- You are about to run ${ARGUMENT} for Host: ${NODE}.<br> Press OK button to proceed!
- <th>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=confirm&args=${ARGUMENT}&proceed=yes\">
- <input style=\"height: 50px; width: 120px\" type=\"submit\" value=\"OK\"></form>
- <form method=\"post\" action=\"${URL}/control.cgi?node=${NODE}&control=other&args=none\">
- <center><input style=\"height: 50px; width: 120px\" type=\"submit\" value=\"Cancel\"></form></td>
- </th>
- </td>
- </td>
- </tr>
- </table>
- <table border=\"2\" color=\"black\" width=\"100%\" height=\"10%\" cellpadding=\"10\" cellspacing=\"10\">
- </table>"
- fi
- return 0
- }
- # Create command
- function fStart()
- {
- # array met input args
- local ARG=( $( echo "${QUERY_STRING}" | sed -e 's/&/\ /g' ) )
- # set node var
- local NODE="$( echo "${ARG[0]}" | sed -e 's/node=//g' )"
- # set control var
- local CONTROL="$( echo "${ARG[1]}" | sed -e 's/control=//g' )"
- # get action var
- local ARGUMENT="$( echo "${ARG[2]}" | sed -e 's/args=//g' )"
- # get proceed var
- local PROCEED="$( echo "${ARG[3]}" | sed -e 's/proceed=//g' )"
- # set command
- local COMMAND="./check_nrpe -H "${NODE}" -t 1"
- # output if
- if [ ! -z "${NODE}" ] && [ ! -z "${CONTROL}" ] && [ ! -z "${ARGUMENT}" ]
- then
- # case commands
- case "${CONTROL}"
- in
- view)
- # set vars for output
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Node: ${NODE}\n</div>\n" )"
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fShowIndex "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- credits)
- # set vars for output
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Showing Credits\n</div>\n" )"
- # create output
- fHeader
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fShowCredits "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- matrix)
- # set vars for output and run command
- if ( echo "${ARGUMENT}" |grep -q '^none$' ) ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Matrix: on ${NODE}\n</div>\n" )"
- elif ( echo "${ARGUMENT}" | grep -qE '^toggle_matrix_[0-2][0-9]$' ) ; then
- if [ "${PROCEED}" = yes ] ; then
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )"; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Succesfully Sended Matrix Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid #00FF00; color:#00FF00;\">Command output was: ${OUTPUT}\n</div>\n" )"
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #FF0000; color:#FF0000;\">Failed to Send Matrix Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid orange; color:orange;\">Command output was: ${OUTPUT}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Matrix: on ${NODE}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${ARGUMENT}\" was not recognized\n</div>" )"
- fi
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fPrintMatrix "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- layer)
- # set vars for output and run command
- if ( echo "${ARGUMENT}" |grep -q '^none$' ) ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Layer: on ${NODE}\n</div>\n" )"
- elif ( echo "${ARGUMENT}" | grep -qE '^toggle_[a-z]+_layer_[0-3]$' ) ; then
- if [ "${PROCEED}" = yes ] ; then
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )"; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Succesfully Sended Layer Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid #00FF00; color:#00FF00;\">Command output was: ${OUTPUT}\n</div>\n" )"
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">Failed to Send Layer Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid orange; color:orange;\">Command output was: ${OUTPUT}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Layer: on ${NODE}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${ARGUMENT}\" was not recognized\n</div>" )"
- fi
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fShowLayers "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- deck)
- # set vars for output and run command
- if ( echo "${ARGUMENT}" |grep -q '^none$' ) ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Deck: on ${NODE}\n</div>\n" )"
- elif ( echo "${ARGUMENT}" | grep -q '^select_deck_[0-8]$' ) ; then
- if [ "${PROCEED}" = yes ] ; then
- if OUTPUT="$( ${COMMAND} -c ${ARGUMENT} )"; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Succesfully Sended Deck Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid #00FF00; color:#00FF00;\">Command output was: ${OUTPUT}\n</div>\n" )"
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #FF0000; color:#FF0000;\">Failed to Send Deck Button ${ARGUMENT} to ${NODE}\n</div>\n" )"
- LINE2="$( echo -e "<div style=\"padding:4px; border:1px solid orange; color:orange;\">Command output was: ${OUTPUT}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Deck: on ${NODE}\n</div>\n" )"
- fi
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${ARGUMENT}\" was not recognized\n</div>" )"
- fi
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fShowDecks "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- other)
- # set vars for output and run command
- if [ "${ARGUMENT}" = none ] ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Other Options on ${NODE}\n</div>\n" )"
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${ARGUMENT}\" was not recognized\n</div>" )"
- fi
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fShowOther "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- confirm)
- # check vars
- if [ "${ARGUMENT}" = none ] ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Selecting Other Options on ${NODE}\n</div>\n" )"
- else
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">About to send ${ARGUMENT} to ${NODE}, Please confirm your actions!\n</div>\n" )"
- fi
- # set vars for output and run command
- if [ "${PROCEED}" = yes ] ; then
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid #00FFFF; color:#00FFFF;\">Confirmed sending ${ARGUMENT} to ${NODE}!\n</div>\n" )"
- fi
- # create output
- SelectWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fStatusWindow "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fConfirm "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- fFooter "${NODE}" "${CONTROL}" "${ARGUMENT}" "${PROCEED}"
- # exit
- return 0
- ;;
- *)
- # set vars for output
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${CONTROL}\" was not recognized\n</div>" )"
- # create output
- fHeader
- fStatusWindow
- fShowIndex
- fFooter
- # exit
- return 0
- ;;
- esac
- else
- # set vars for output
- LINE1="$( echo -e "<div style=\"padding:4px; border:1px solid red; color:red;\">An error appeared! Command \"${CONTROL}\" was not recognized\n</div>" )"
- # create output
- fHeader
- fStatusWindow
- fShowIndex
- fFooter
- # exit
- return 0
- fi
- }
- ##################################################
- #
- # DO THA MAGIC:
- #
- ##################################################
- # check for query string
- fCheck && fStart
Advertisement
Add Comment
Please, Sign In to add comment