tazpanel annotate lib/libtazpanel @ rev 190
Small fix to df output
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri Jun 10 20:58:58 2011 +0200 (2011-06-10) |
parents | cf97da078744 |
children | b960d4f9bc04 |
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 |
pascal@81 | 6 # Get parameters with GET, POST and FILE functions |
pascal@81 | 7 . /usr/bin/httpd_helper.sh |
pascal@81 | 8 |
pankso@109 | 9 # I18n |
pankso@40 | 10 . /usr/bin/gettext.sh |
pankso@40 | 11 TEXTDOMAIN='tazpanel' |
pankso@40 | 12 export TEXTDOMAIN |
pankso@40 | 13 |
pankso@15 | 14 # We need a config file first |
pankso@15 | 15 get_config() { |
pankso@15 | 16 CONFIG="/etc/slitaz/tazpanel.conf" |
pankso@116 | 17 [ -f data/tazpanel.conf ] && CONFIG="data/tazpanel.conf" |
pankso@110 | 18 [ -f "$CONFIG" ] && . $CONFIG |
pankso@110 | 19 [ ! -f "$PANEL/lib/libtazpanel" ] && \ |
pankso@15 | 20 echo "No config file or libtazpanel found: $CONFIG" && \ |
pankso@15 | 21 exit 1 |
pankso@15 | 22 } |
pankso@15 | 23 |
pankso@74 | 24 # Syntax highlighting for config file and SHell scripts |
pankso@76 | 25 # HTML entities: -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' |
pankso@74 | 26 syntax_highlighter() { |
pankso@74 | 27 case $1 in |
pankso@74 | 28 conf) |
pascal@176 | 29 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
slaxemulator@177 | 30 -e s"#^\#\([^']*\)#<span class='conf-comment'>\0</span>#"g \ |
pankso@74 | 31 -e s"#^[A-Z]\([^']*\)=#<span class='conf-var'>\0</span>#"g \ |
pankso@74 | 32 -e s"#^[a-z]\([^']*\)#<span class='conf-var'>\0</span>#"g \ |
pankso@74 | 33 -e s"#\"\([^']*\)\"#<span class='conf-val'>\0</span>#"g ;; |
pankso@75 | 34 sh) |
pascal@176 | 35 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
pascal@176 | 36 -e s"#^\#\([^']*\)#<span class='sh-comment'>\0</span>#"g \ |
pascal@91 | 37 -e s"#\"\([^']*\)\"#<span class='sh-val'>\0</span>#"g ;; |
pascal@91 | 38 diff) |
pankso@94 | 39 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
pascal@171 | 40 -e s"#^-\(.*\).#<span class='diff-rm'>\0</span>#"g \ |
pascal@171 | 41 -e s"#^+\(.*\).#<span class='diff-add'>\0</span>#"g \ |
pascal@171 | 42 -e s"#@@\(.*\)@@#<span class='diff-at'>@@\1@@</span>#"g ;; |
pankso@120 | 43 activity) |
pankso@120 | 44 sed s"#^\([^']*:\)#<span class='activity-log''>\0</span>#"g ;; |
pankso@74 | 45 esac |
pankso@53 | 46 } |
pankso@53 | 47 |
pascal@99 | 48 # Remove status and ESC char from tazpkg/tazlito commands output |
pascal@99 | 49 filter_taztools_msgs() { |
pascal@168 | 50 sed -e s'/\[^Gm]*.//g' \ |
pascal@167 | 51 -e ':a;s/^\(.\{1,68\}\)\(\[ [A-Za-z]* \]\)/\1 \2/;ta' \ |
pascal@167 | 52 -e 's#\[ OK \]#[ <span class="diff-add">OK</span> ]#' \ |
pascal@167 | 53 -e 's#\[ Failed \]#[ <span class="diff-rm">Failed</span> ]#' |
pascal@99 | 54 } |
pascal@99 | 55 |
pankso@51 | 56 # LOG activities |
pankso@51 | 57 log() { |
pankso@96 | 58 date=$(date "+%Y-%m-%d %H:%M") |
pascal@99 | 59 filter_taztools_msgs | \ |
pankso@94 | 60 sed s"#[^']*#$date : \0#" >> $LOG_FILE |
pankso@51 | 61 } |
pankso@51 | 62 |
pankso@161 | 63 ok_status() { |
pankso@161 | 64 echo "[<span class='diff-add'> OK </span>]" |
pankso@161 | 65 } |
pankso@161 | 66 |
pankso@40 | 67 # Network interface status |
pankso@40 | 68 interface_status() { |
pankso@40 | 69 if ifconfig | grep -A 1 $i | grep -q inet; then |
pankso@40 | 70 ip=`ifconfig | grep -A 1 $i | grep inet | \ |
pankso@40 | 71 awk '{ print $2 }' | cut -d ":" -f 2` |
pankso@40 | 72 echo "<td>connected</td><td>$ip</td>" |
pascal@136 | 73 echo "<td><a href='/network.cgi?scan=$ip'>" |
pankso@148 | 74 echo "<img src='$IMAGES/recharge.png' /></a></td>" |
pankso@40 | 75 else |
pascal@136 | 76 echo "<td>----</td><td>----</td><td></td>" |
pankso@40 | 77 fi |
pankso@40 | 78 } |
pankso@40 | 79 |
pankso@40 | 80 # Catch network interface (used in summary and network main page) |
pankso@40 | 81 list_network_interfaces() { |
pankso@40 | 82 table_start |
pankso@40 | 83 cat << EOT |
pankso@40 | 84 <tr id="thead"> |
pankso@40 | 85 <td>`gettext "Interface"`</td> |
pankso@40 | 86 <td>`gettext "Name"`</td> |
pankso@40 | 87 <td>`gettext "Status"`</td> |
pankso@40 | 88 <td>`gettext "IP Address"`</td> |
pankso@148 | 89 <td>`gettext "Scan ports"`</td> |
pankso@40 | 90 </tr> |
pankso@40 | 91 EOT |
pankso@40 | 92 for i in `ls /sys/class/net` |
pankso@40 | 93 do |
pankso@40 | 94 case $i in |
pankso@40 | 95 eth*) |
pankso@41 | 96 echo "<tr><td><a href='/network.cgi?eth'> |
pankso@41 | 97 <img src='$IMAGES/ethernet.png' />$i</a></td> |
pankso@148 | 98 <td>Ethernet</td> $(interface_status)</tr>" ;; |
pankso@40 | 99 wlan*|ath*|ra*) |
pankso@41 | 100 echo "<tr><td><a href='/network.cgi?wifi'> |
pankso@41 | 101 <img src='$IMAGES/wireless.png' />$i</a></td> |
pankso@148 | 102 <td>Wireless</td> $(interface_status)</tr>" ;; |
pankso@40 | 103 lo) |
pankso@40 | 104 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td> |
pankso@148 | 105 <td>Loopback</td> $(interface_status)</tr>" ;; |
pankso@40 | 106 *) |
pankso@40 | 107 continue ;; |
pankso@40 | 108 esac |
pankso@40 | 109 done |
pankso@40 | 110 table_end |
pankso@40 | 111 } |
pankso@40 | 112 |
pankso@15 | 113 # |
pankso@15 | 114 # xHTML 5 (header and footer skel are from the style) |
pankso@15 | 115 # |
pankso@15 | 116 |
pankso@44 | 117 loading_msg() { |
pankso@44 | 118 cat << EOT |
pankso@44 | 119 <script type="text/javascript"> |
pankso@44 | 120 document.write('<div id="loading"><img src="/styles/default/images/loader.gif" />$LOADING_MSG</div>'); |
pankso@44 | 121 </script> |
pankso@44 | 122 EOT |
pankso@44 | 123 } |
pankso@44 | 124 |
pankso@15 | 125 xhtml_header() { |
pankso@32 | 126 cat ${PANEL}$HEADER | sed s/'- %TITLE%'/"$TITLE"/ |
pankso@67 | 127 if [ $DEBUG == "1" ]; then |
pascal@81 | 128 local i |
pascal@81 | 129 local j |
pascal@81 | 130 local x |
pascal@81 | 131 args="" |
pascal@81 | 132 for x in GET POST COOKIE ; do |
pascal@81 | 133 for i in $($x) ; do |
pascal@81 | 134 if [ $($x $i count) -gt 1 ]; then |
pascal@81 | 135 for j in $(seq 1 $($x $i count)); do |
pascal@81 | 136 args="$args $x($i,$j)='$($x $i $j)'" |
pascal@81 | 137 done |
pascal@81 | 138 else |
pascal@81 | 139 args="$args $x($i)='$($x $i)'" |
pascal@81 | 140 fi |
pascal@81 | 141 done |
pascal@81 | 142 done |
pascal@81 | 143 for i in $(FILE); do |
pascal@81 | 144 for j in name size type tmpname ; do |
pascal@81 | 145 args="$args FILE($i,$j)=$(FILE $i $j)" |
pascal@81 | 146 done |
pascal@81 | 147 done |
pankso@70 | 148 cat << EOT |
pankso@70 | 149 <pre class='debug'> |
pascal@81 | 150 QUERY_STRING="$QUERY_STRING"$args |
pankso@70 | 151 </pre> |
pankso@70 | 152 EOT |
pankso@67 | 153 fi |
pankso@15 | 154 } |
pankso@15 | 155 |
pankso@15 | 156 xhtml_footer() { |
pankso@32 | 157 cat ${PANEL}$FOOTER |
pankso@15 | 158 } |
pankso@15 | 159 |
pankso@15 | 160 table_start() { |
pankso@15 | 161 cat << EOT |
pankso@15 | 162 <table> |
pankso@15 | 163 <tbody> |
pankso@15 | 164 EOT |
pankso@15 | 165 } |
pankso@15 | 166 |
pankso@15 | 167 table_end () { |
pankso@15 | 168 cat << EOT |
pankso@15 | 169 </tbody> |
pankso@15 | 170 </table> |
pankso@15 | 171 EOT |
pankso@45 | 172 |
pankso@15 | 173 } |
pankso@153 | 174 |
pankso@153 | 175 df_thead() { |
pankso@153 | 176 cat << EOT |
pankso@153 | 177 <thead> |
pankso@153 | 178 <tr> |
pankso@190 | 179 <td>$(gettext "Disk")</td> |
pankso@153 | 180 <td>$(gettext "Size")</td> |
pankso@153 | 181 <td>$(gettext "Available")</td> |
pankso@153 | 182 <td>$(gettext "Used")</td> |
pankso@153 | 183 <td>$(gettext "Mount point")</td> |
pankso@153 | 184 </tr> |
pankso@153 | 185 </thead> |
pankso@153 | 186 EOT |
pankso@153 | 187 } |