tazpanel annotate lib/libtazpanel @ rev 76

Show Panel activity and log a few more things to test (we need date in log() and reverse output on main page)
author Christophe Lincoln <pankso@slitaz.org>
date Tue Apr 12 04:24:35 2011 +0200 (2011-04-12)
parents 1780ef64bcd5
children 25602bc63ca7
rev   line source
pankso@15 1 #!/bin/sh
pankso@15 2 #
pankso@15 3 # Common functions for TazPanel CGI and cmdline interface
pankso@15 4 #
pankso@15 5
pankso@40 6 # Include gettext helper script.
pankso@40 7 . /usr/bin/gettext.sh
pankso@40 8
pankso@40 9 # Export package name for gettext.
pankso@40 10 TEXTDOMAIN='tazpanel'
pankso@40 11 export TEXTDOMAIN
pankso@40 12
pankso@15 13 # We need a config file first
pankso@15 14 get_config() {
pankso@15 15 CONFIG="/etc/slitaz/tazpanel.conf"
pankso@15 16 [ -f $CONFIG ] && . $CONFIG
pankso@15 17 [ -f tazpanel.conf ] && . tazpanel.conf
pankso@15 18 [ ! -f $PANEL/lib/libtazpanel ] && \
pankso@15 19 echo "No config file or libtazpanel found: $CONFIG" && \
pankso@15 20 exit 1
pankso@15 21 }
pankso@15 22
paul@60 23 # TazPanel QUERY_STRING parser returns: CASE WANT VAR_1 VAR_4
paul@60 24 # we use that to help get URL string variables and user names
pankso@53 25 query_string_parser() {
pankso@53 26 id=0
pankso@53 27 for var in $(echo "$QUERY_STRING" | sed s'@=@ @'g)
pankso@53 28 do
pankso@53 29 id=$((id + 1))
pankso@71 30 var=${var#&}
pankso@53 31 case "$id" in
pankso@53 32 '1') CASE=${var% } ;;
pankso@53 33 '2') WANT=${var% } ;;
pankso@53 34 '3') VAR_1=${var% } ;;
pankso@53 35 '4') VAR_2=${var% } ;;
pankso@53 36 esac
pankso@53 37 done
pankso@74 38 }
pankso@74 39
pankso@74 40 # Syntax highlighting for config file and SHell scripts
pankso@76 41 # HTML entities: -e 's|&|\&amp;|g' -e 's|<|\&lt;|g' -e 's|>|\&gt;|g'
pankso@74 42 syntax_highlighter() {
pankso@74 43 case $1 in
pankso@74 44 conf)
pankso@74 45 sed -e s"#^\#\([^']*\)#<span class='conf-comment'>\0</span>#"g \
pankso@74 46 -e s"#^[A-Z]\([^']*\)=#<span class='conf-var'>\0</span>#"g \
pankso@74 47 -e s"#^[a-z]\([^']*\)#<span class='conf-var'>\0</span>#"g \
pankso@74 48 -e s"#\"\([^']*\)\"#<span class='conf-val'>\0</span>#"g ;;
pankso@75 49 sh)
pankso@75 50 sed -e s"#^\#\([^']*\)#<span class='sh-comment'>\0</span>#"g \
pankso@75 51 -e s"#\"\([^']*\)\"#<span class='sh-val'>\0</span>#"g
pankso@74 52 esac
pankso@53 53 }
pankso@53 54
pankso@51 55 # LOG activities
pankso@51 56 log() {
pankso@51 57 grep ^[a-zA-Z0-9] | sed s'/\.*\]//' >> $LOG_FILE
pankso@51 58 }
pankso@51 59
pankso@40 60 # Network interface status
pankso@40 61 interface_status() {
pankso@40 62 if ifconfig | grep -A 1 $i | grep -q inet; then
pankso@40 63 ip=`ifconfig | grep -A 1 $i | grep inet | \
pankso@40 64 awk '{ print $2 }' | cut -d ":" -f 2`
pankso@40 65 echo "<td>connected</td><td>$ip</td>"
pankso@40 66 else
pankso@40 67 echo "<td>----</td><td>----</td>"
pankso@40 68 fi
pankso@40 69 }
pankso@40 70
pankso@40 71 # Catch network interface (used in summary and network main page)
pankso@40 72 list_network_interfaces() {
pankso@40 73 table_start
pankso@40 74 cat << EOT
pankso@40 75 <tr id="thead">
pankso@40 76 <td>`gettext "Interface"`</td>
pankso@40 77 <td>`gettext "Name"`</td>
pankso@40 78 <td>`gettext "Status"`</td>
pankso@40 79 <td>`gettext "IP Address"`</td>
pankso@40 80 </tr>
pankso@40 81 EOT
pankso@40 82 for i in `ls /sys/class/net`
pankso@40 83 do
pankso@40 84 case $i in
pankso@40 85 eth*)
pankso@41 86 echo "<tr><td><a href='/network.cgi?eth'>
pankso@41 87 <img src='$IMAGES/ethernet.png' />$i</a></td>
pankso@40 88 <td>Ethernet</td> `interface_status`</tr>" ;;
pankso@40 89 wlan*|ath*|ra*)
pankso@41 90 echo "<tr><td><a href='/network.cgi?wifi'>
pankso@41 91 <img src='$IMAGES/wireless.png' />$i</a></td>
pankso@40 92 <td>Wireless</td> `interface_status`</tr>" ;;
pankso@40 93 lo)
pankso@40 94 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td>
pankso@40 95 <td>Loopback</td> `interface_status`</tr>" ;;
pankso@40 96 *)
pankso@40 97 continue ;;
pankso@40 98 esac
pankso@40 99 done
pankso@40 100 table_end
pankso@40 101 }
pankso@40 102
pankso@15 103 #
pankso@15 104 # xHTML 5 (header and footer skel are from the style)
pankso@15 105 #
pankso@15 106
pankso@44 107 loading_msg() {
pankso@44 108 cat << EOT
pankso@44 109 <script type="text/javascript">
pankso@44 110 document.write('<div id="loading"><img src="/styles/default/images/loader.gif" />$LOADING_MSG</div>');
pankso@44 111 </script>
pankso@44 112 EOT
pankso@44 113 }
pankso@44 114
pankso@15 115 xhtml_header() {
pankso@32 116 cat ${PANEL}$HEADER | sed s/'- %TITLE%'/"$TITLE"/
pankso@67 117 if [ $DEBUG == "1" ]; then
pankso@70 118 cat << EOT
pankso@70 119 <pre class='debug'>
pankso@70 120 QUERY_STRING="$QUERY_STRING"
pankso@72 121 CASE="$CASE" WANT="$WANT" VAR_1="$VAR_1"
pankso@70 122 </pre>
pankso@70 123 EOT
pankso@67 124 fi
pankso@15 125 }
pankso@15 126
pankso@15 127 xhtml_footer() {
pankso@32 128 cat ${PANEL}$FOOTER
pankso@15 129 }
pankso@15 130
pankso@15 131 table_start() {
pankso@15 132 cat << EOT
pankso@15 133 <table>
pankso@15 134 <tbody>
pankso@15 135 EOT
pankso@15 136 }
pankso@15 137
pankso@15 138 table_end () {
pankso@15 139 cat << EOT
pankso@15 140 </tbody>
pankso@15 141 </table>
pankso@15 142 EOT
pankso@45 143
pankso@15 144 }