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|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|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 } |