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