tazpanel annotate index.cgi @ rev 152
hardware.cgi: add free with colors and also add colors to top
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Apr 18 03:44:20 2011 +0200 (2011-04-18) |
parents | 111fadde51fc |
children | ed55f0e369b3 |
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 # |
pankso@56 | 59 TITLE="- File" |
pankso@56 | 60 xhtml_header |
pascal@81 | 61 file="$(GET file)" |
pascal@81 | 62 echo "<h2>$file</h2>" |
pascal@90 | 63 if [ "$(GET action)" == "edit" ]; then |
pascal@90 | 64 cat <<EOT |
pascal@100 | 65 <form method="post" action="$SCRIPT_NAME?file=$file"> |
pascal@97 | 66 <img src="$IMAGES/edit.png" /> |
pascal@90 | 67 <input type="submit" value="`gettext "Save"`"> |
pascal@90 | 68 <textarea name="content" rows="30" style="width: 100%;"> |
pascal@90 | 69 $(cat $file) |
pascal@90 | 70 </textarea> |
pascal@90 | 71 </form> |
pascal@90 | 72 EOT |
pascal@91 | 73 elif [ "$(GET action)" == "diff" ]; then |
pascal@91 | 74 echo '<pre id="diff">' |
pascal@91 | 75 file_is_modified $file diff | syntax_highlighter diff |
pascal@91 | 76 echo '</pre>' |
pascal@90 | 77 else |
pascal@90 | 78 [ -n "$(POST content)" ] && |
pascal@90 | 79 sed "s/`echo -en '\r'` /\n/g" > $file <<EOT |
pascal@90 | 80 $(POST content) |
pascal@90 | 81 EOT |
pascal@90 | 82 cat <<EOT |
pascal@90 | 83 <div id="actions"> |
pascal@100 | 84 <a class="button" href='$SCRIPT_NAME?file=$file&action=edit'> |
pascal@97 | 85 <img src="$IMAGES/edit.png" />`gettext "Edit"`</a> |
pascal@90 | 86 EOT |
pascal@91 | 87 file_is_modified $file button |
pascal@91 | 88 echo -e "</div>\n<pre>" |
pascal@90 | 89 # Handle file type by extension as a Web Server does it. |
pascal@90 | 90 case "$file" in |
pascal@90 | 91 *.conf|*.lst) |
pascal@90 | 92 syntax_highlighter conf ;; |
pascal@90 | 93 *.sh|*.cgi) |
pascal@90 | 94 syntax_highlighter sh ;; |
pascal@90 | 95 *) |
pascal@90 | 96 cat ;; |
pascal@90 | 97 esac < $file |
pascal@90 | 98 echo '</pre>' |
pascal@90 | 99 fi ;; |
pascal@144 | 100 *\ top\ *) |
pascal@144 | 101 TITLE="- $(gettext "Process activity")" |
pascal@144 | 102 xhtml_header |
pascal@144 | 103 echo '<pre>' |
pankso@152 | 104 top -n1 -b | sed \ |
pankso@152 | 105 -e s"#^[A-Z].*:\([^']\)#<span class='sh-comment'>\0</span>#"g \ |
pankso@152 | 106 -e s"#PID.*\([^']\)#<span class='top'>\0</span>#"g |
pascal@144 | 107 echo '</pre>' ;; |
pascal@81 | 108 *\ debug\ *) |
pankso@53 | 109 TITLE="- Debug" |
pankso@53 | 110 xhtml_header |
pankso@55 | 111 echo '<h2>HTTP Environment</h2>' |
pankso@55 | 112 echo '<pre>' |
pascal@81 | 113 httpinfo |
pankso@55 | 114 echo '</pre>' ;; |
pankso@2 | 115 *) |
pankso@14 | 116 # |
pankso@2 | 117 # Default xHTML content |
pankso@14 | 118 # |
pankso@8 | 119 xhtml_header |
pascal@81 | 120 [ -n "$(GET gen_locale)" ] && new_locale=$(GET gen_locale) |
pascal@81 | 121 [ -n "$(GET rdate)" ] && echo "" |
pankso@2 | 122 cat << EOT |
pankso@13 | 123 <div id="wrapper"> |
pankso@14 | 124 <h2>`gettext "Host:"` `hostname`</h2> |
paul@52 | 125 <p>`gettext "SliTaz administration and configuration Panel"`<p> |
pankso@14 | 126 </div> |
pankso@14 | 127 |
pankso@14 | 128 <h3>`gettext "Summary"`</h3> |
pankso@14 | 129 <div id="summary"> |
pankso@33 | 130 <p> |
pankso@33 | 131 `gettext "Uptime:"` `uptime` |
pascal@144 | 132 <a class="button" href="$SCRIPT_NAME?top"> |
pascal@144 | 133 <img src="$IMAGES/recharge.png" />`gettext "Process activity"`</a> |
pankso@33 | 134 </p> |
pankso@33 | 135 <p> |
pankso@33 | 136 `gettext "Memory in Mb"` |
pankso@33 | 137 `free -m | grep Mem: | awk \ |
pankso@33 | 138 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'` |
pankso@33 | 139 </p> |
pankso@33 | 140 <!-- Close summary --> |
pankso@33 | 141 </div> |
pankso@14 | 142 |
pankso@33 | 143 <h4>`gettext "Network status"`</h4> |
pankso@33 | 144 `list_network_interfaces` |
pankso@33 | 145 |
pankso@33 | 146 <h4>`gettext "Filesystem usage statistics"`</h4> |
pankso@14 | 147 <pre> |
pankso@14 | 148 `df -h | grep ^/dev` |
pankso@14 | 149 </pre> |
pankso@49 | 150 |
pankso@76 | 151 <h3>`gettext "Panel Activity"`</h3> |
pankso@120 | 152 <pre id="panel-activity"> |
pankso@120 | 153 $(cat $LOG_FILE | tail -n 8 | sort -r | syntax_highlighter activity) |
pankso@76 | 154 </pre> |
pankso@76 | 155 |
pankso@2 | 156 EOT |
pankso@2 | 157 ;; |
pankso@2 | 158 esac |
pankso@2 | 159 |
pankso@14 | 160 xhtml_footer |
pankso@14 | 161 exit 0 |