tazpanel annotate index.cgi @ rev 161
Add report creation (to help debbuging)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Apr 21 17:21:12 2011 +0200 (2011-04-21) |
parents | 2b919224c683 |
children | 3a6f2e0ddaea |
rev | line source |
---|---|
pankso@2 | 1 #!/bin/sh |
pankso@2 | 2 # |
paul@52 | 3 # Main CGI interface for TazPanel. In on word: KISS. Use the main css form |
paul@52 | 4 # command so we are faster and do not load unneeded functions. If necessary |
pankso@14 | 5 # you can use the lib/ dir to handle external resources. |
pankso@2 | 6 # |
pankso@112 | 7 # Copyright (C) 2011 SliTaz GNU/Linux - BSD License |
pankso@42 | 8 # |
pankso@2 | 9 |
pankso@14 | 10 # Common functions from libtazpanel |
pankso@14 | 11 . lib/libtazpanel |
pankso@14 | 12 get_config |
pascal@81 | 13 header |
pankso@2 | 14 |
paul@127 | 15 # Check whether a configuration file has been modified after installation |
pascal@91 | 16 file_is_modified() |
pascal@91 | 17 { |
pascal@91 | 18 grep -l " $1$" $INSTALLED/*/md5sum | while read file; do |
pascal@91 | 19 |
pascal@91 | 20 # Found, but can we do diff ? |
pascal@91 | 21 [ "$(grep -h " $1$" $file)" != "$(md5sum $1)" ] || break |
pascal@91 | 22 org=$(dirname $file)/volatile.cpio.gz |
pascal@91 | 23 zcat $org 2>/dev/null | cpio -t 2>/dev/null | \ |
pascal@91 | 24 grep -q "^${1#/}$" || break |
pascal@91 | 25 |
pascal@91 | 26 case "$2" in |
pascal@91 | 27 diff) |
pascal@91 | 28 tmp=/tmp/tazpanel$$ |
pascal@91 | 29 mkdir -p $tmp |
pascal@91 | 30 ( cd $tmp ; zcat $org | cpio -id ${1#/} ) |
pascal@91 | 31 diff -u $tmp$1 $1 |
pascal@91 | 32 rm -rf $tmp ;; |
pascal@91 | 33 button) |
pascal@91 | 34 cat <<EOT |
pascal@100 | 35 <a class="button" href='$SCRIPT_NAME?file=$1&action=diff'> |
pascal@97 | 36 <img src="$IMAGES/help.png" />`gettext "Differences"`</a> |
pascal@91 | 37 EOT |
pascal@91 | 38 esac |
pascal@93 | 39 break |
pascal@91 | 40 done |
pascal@91 | 41 } |
pascal@91 | 42 |
pankso@2 | 43 # |
pankso@49 | 44 # Things to do before displaying the page |
pankso@49 | 45 # |
pankso@49 | 46 |
pascal@81 | 47 [ -n "$(GET panel_pass)" ] && |
pascal@81 | 48 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF |
pankso@49 | 49 |
pankso@49 | 50 # |
pankso@2 | 51 # Commands |
pankso@2 | 52 # |
pankso@2 | 53 |
pascal@81 | 54 case " $(GET) " in |
pascal@81 | 55 *\ file\ *) |
pankso@56 | 56 # |
pascal@91 | 57 # Handle files |
pankso@56 | 58 # |
pascal@81 | 59 file="$(GET file)" |
pankso@161 | 60 case $file in |
pankso@161 | 61 *.html) |
pankso@161 | 62 cat $file && exit 0 ;; |
pankso@161 | 63 *) |
pankso@161 | 64 TITLE="- File" |
pankso@161 | 65 xhtml_header |
pankso@161 | 66 echo "<h2>$file</h2>" ;; |
pankso@161 | 67 esac |
pascal@90 | 68 if [ "$(GET action)" == "edit" ]; then |
pascal@90 | 69 cat <<EOT |
pascal@100 | 70 <form method="post" action="$SCRIPT_NAME?file=$file"> |
pascal@97 | 71 <img src="$IMAGES/edit.png" /> |
pascal@90 | 72 <input type="submit" value="`gettext "Save"`"> |
pascal@90 | 73 <textarea name="content" rows="30" style="width: 100%;"> |
pascal@90 | 74 $(cat $file) |
pascal@90 | 75 </textarea> |
pascal@90 | 76 </form> |
pascal@90 | 77 EOT |
pascal@91 | 78 elif [ "$(GET action)" == "diff" ]; then |
pascal@91 | 79 echo '<pre id="diff">' |
pascal@91 | 80 file_is_modified $file diff | syntax_highlighter diff |
pascal@91 | 81 echo '</pre>' |
pascal@90 | 82 else |
pascal@90 | 83 [ -n "$(POST content)" ] && |
pascal@90 | 84 sed "s/`echo -en '\r'` /\n/g" > $file <<EOT |
pascal@90 | 85 $(POST content) |
pascal@90 | 86 EOT |
pascal@90 | 87 cat <<EOT |
pascal@90 | 88 <div id="actions"> |
pascal@100 | 89 <a class="button" href='$SCRIPT_NAME?file=$file&action=edit'> |
pascal@97 | 90 <img src="$IMAGES/edit.png" />`gettext "Edit"`</a> |
pascal@90 | 91 EOT |
pascal@91 | 92 file_is_modified $file button |
pascal@91 | 93 echo -e "</div>\n<pre>" |
pascal@90 | 94 # Handle file type by extension as a Web Server does it. |
pascal@90 | 95 case "$file" in |
pascal@90 | 96 *.conf|*.lst) |
pascal@90 | 97 syntax_highlighter conf ;; |
pascal@90 | 98 *.sh|*.cgi) |
pascal@90 | 99 syntax_highlighter sh ;; |
pascal@90 | 100 *) |
pascal@90 | 101 cat ;; |
pascal@90 | 102 esac < $file |
pascal@90 | 103 echo '</pre>' |
pascal@90 | 104 fi ;; |
pascal@144 | 105 *\ top\ *) |
pascal@144 | 106 TITLE="- $(gettext "Process activity")" |
pascal@144 | 107 xhtml_header |
pascal@144 | 108 echo '<pre>' |
pankso@152 | 109 top -n1 -b | sed \ |
pankso@152 | 110 -e s"#^[A-Z].*:\([^']\)#<span class='sh-comment'>\0</span>#"g \ |
pankso@152 | 111 -e s"#PID.*\([^']\)#<span class='top'>\0</span>#"g |
pascal@144 | 112 echo '</pre>' ;; |
pascal@81 | 113 *\ debug\ *) |
pankso@53 | 114 TITLE="- Debug" |
pankso@53 | 115 xhtml_header |
pankso@55 | 116 echo '<h2>HTTP Environment</h2>' |
pankso@55 | 117 echo '<pre>' |
pascal@81 | 118 httpinfo |
pankso@55 | 119 echo '</pre>' ;; |
pankso@161 | 120 *\ report\ *) |
pankso@161 | 121 TITLE="- $(gettext "System report")" |
pankso@161 | 122 output=/var/cache/slitaz/sys-report.html |
pankso@161 | 123 xhtml_header |
pankso@161 | 124 echo "<h2>$(gettext "Reporting to:") $output</h2>" |
pankso@161 | 125 echo '<pre>' |
pankso@161 | 126 gettext "Creating report header... " |
pankso@161 | 127 cat > $output << EOT |
pankso@161 | 128 <!DOCTYPE html> |
pankso@161 | 129 <html xmlns="http://www.w3.org/1999/xhtml"> |
pankso@161 | 130 <head> |
pankso@161 | 131 <title>SliTaz system report</title> |
pankso@161 | 132 <style type="text/css"> |
pankso@161 | 133 body { padding: 20px 60px; font-size: 13px; } h1, h2 { color: #444; } |
pankso@161 | 134 pre { background: #f1f1f1; border: 1px solid #ddd; |
pankso@161 | 135 padding: 10px; border-radius: 4px; } |
pankso@161 | 136 </style> |
pankso@161 | 137 </head> |
pankso@161 | 138 <body> |
pankso@161 | 139 EOT |
pankso@161 | 140 ok_status |
pankso@161 | 141 gettext "Creating system summary... " |
pankso@161 | 142 cat >> $output << EOT |
pankso@161 | 143 <h1>SliTaz system report</h1> |
pankso@161 | 144 Date: $(date) |
pankso@161 | 145 <pre> |
pankso@161 | 146 uptime :$(uptime) |
pankso@161 | 147 cmdline : $(cat /proc/cmdline) |
pankso@161 | 148 version : $(cat /etc/slitaz-release) |
pankso@161 | 149 packages : $(ls /var/lib/tazpkg/installed | wc -l) installed |
pankso@161 | 150 kernel : $(uname -r) |
pankso@161 | 151 </pre> |
pankso@161 | 152 EOT |
pankso@161 | 153 ok_status |
pankso@161 | 154 gettext "Getting hardware info... " |
pankso@161 | 155 cat >> $output << EOT |
pankso@161 | 156 <h2>free</h2> |
pankso@161 | 157 <pre> |
pankso@161 | 158 $(free) |
pankso@161 | 159 </pre> |
pankso@161 | 160 |
pankso@161 | 161 <h2>lspci -k</h2> |
pankso@161 | 162 <pre> |
pankso@161 | 163 $(lspci -k) |
pankso@161 | 164 </pre> |
pankso@161 | 165 |
pankso@161 | 166 <h2>lsusb</h2> |
pankso@161 | 167 <pre> |
pankso@161 | 168 $(lsusb) |
pankso@161 | 169 </pre> |
pankso@161 | 170 |
pankso@161 | 171 <h2>lsmod</h2> |
pankso@161 | 172 <pre> |
pankso@161 | 173 $(lsmod) |
pankso@161 | 174 </pre> |
pankso@161 | 175 |
pankso@161 | 176 EOT |
pankso@161 | 177 ok_status |
pankso@161 | 178 gettext "Getting networking info... " |
pankso@161 | 179 cat >> $output << EOT |
pankso@161 | 180 <h2>ifconfig -a</h2> |
pankso@161 | 181 <pre> |
pankso@161 | 182 $(ifconfig -a) |
pankso@161 | 183 </pre> |
pankso@161 | 184 EOT |
pankso@161 | 185 ok_status |
pankso@161 | 186 gettext "Creating report footer... " |
pankso@161 | 187 cat cat >> $output << EOT |
pankso@161 | 188 </body> |
pankso@161 | 189 </html> |
pankso@161 | 190 EOT |
pankso@161 | 191 ok_status |
pankso@161 | 192 echo '</pre>' |
pankso@161 | 193 echo "<p><a class='button' href='$SCRIPT_NAME?file=$output'> |
pankso@161 | 194 $(gettext "View report")</a>" |
pankso@161 | 195 gettext "This report can be attached with a bug report on: " |
pankso@161 | 196 echo '<a href="http://bugs.slitaz.org/">bugs.slitaz.org</a></p>' ;; |
pankso@2 | 197 *) |
pankso@14 | 198 # |
pankso@2 | 199 # Default xHTML content |
pankso@14 | 200 # |
pankso@8 | 201 xhtml_header |
pascal@81 | 202 [ -n "$(GET gen_locale)" ] && new_locale=$(GET gen_locale) |
pascal@81 | 203 [ -n "$(GET rdate)" ] && echo "" |
pankso@2 | 204 cat << EOT |
pankso@13 | 205 <div id="wrapper"> |
pankso@154 | 206 <h2>$(gettext "Host:") $(hostname)</h2> |
pankso@154 | 207 <p>$(gettext "SliTaz administration and configuration Panel")<p> |
pankso@154 | 208 </div> |
pankso@154 | 209 <div id="actions"> |
pankso@161 | 210 <a class="button" href="$SCRIPT_NAME?top"> |
pankso@161 | 211 <img src="$IMAGES/monitor.png" />$(gettext "Process activity")</a> |
pankso@161 | 212 <a class="button" href="$SCRIPT_NAME?report"> |
pankso@161 | 213 <img src="$IMAGES/text.png" />$(gettext "Create a report")</a> |
pankso@14 | 214 </div> |
pankso@14 | 215 |
pankso@154 | 216 <h3>$(gettext "Summary")</h3> |
pankso@14 | 217 <div id="summary"> |
pankso@161 | 218 <pre> |
pankso@161 | 219 $(gettext "Uptime :")$(uptime) |
pankso@161 | 220 $(gettext "Memory in Mb :") $(free -m | grep Mem: | awk \ |
pankso@161 | 221 '{print "Total:", $2, "Used:", $3, "Free:", $4}') |
pankso@161 | 222 $(gettext "Linux kernel :") $(uname -r) |
pankso@161 | 223 </pre> |
pankso@33 | 224 <!-- Close summary --> |
pankso@33 | 225 </div> |
pankso@14 | 226 |
pankso@154 | 227 <h4>$(gettext "Network status")</h4> |
pankso@154 | 228 $(list_network_interfaces) |
pankso@154 | 229 |
pankso@154 | 230 <h4>$(gettext "Filesystem usage statistics")</h4> |
pankso@153 | 231 EOT |
paul@157 | 232 # Disk stats (management is done as hardware.cgi) |
pankso@153 | 233 table_start |
pankso@153 | 234 df_thead |
pankso@153 | 235 df -h | grep ^/dev | while read fs size used av pct mp |
pankso@153 | 236 do |
pankso@153 | 237 cat << EOT |
pankso@153 | 238 <tr> |
pankso@153 | 239 <td><a href="hardware.cgi"> |
pankso@153 | 240 <img src="$IMAGES/harddisk.png" />$fs</a></td> |
pankso@153 | 241 <td>$size</td> |
pankso@153 | 242 <td>$av</td> |
pankso@153 | 243 <td class="pct"><div class="pct" |
pankso@153 | 244 style="width: $pct;">$used - $pct</div></td> |
pankso@153 | 245 <td>$mp</td> |
pankso@153 | 246 </tr> |
pankso@153 | 247 EOT |
pankso@153 | 248 done |
pankso@153 | 249 table_end |
pankso@153 | 250 cat << EOT |
pankso@153 | 251 <h3>$(gettext "Panel Activity")</h3> |
pankso@120 | 252 <pre id="panel-activity"> |
pankso@120 | 253 $(cat $LOG_FILE | tail -n 8 | sort -r | syntax_highlighter activity) |
pankso@76 | 254 </pre> |
pankso@76 | 255 |
pankso@2 | 256 EOT |
pankso@2 | 257 ;; |
pankso@2 | 258 esac |
pankso@2 | 259 |
pankso@14 | 260 xhtml_footer |
pankso@14 | 261 exit 0 |