tazpanel annotate index.cgi @ rev 154

index.cgi: Forgot title and move top button on top..
author Christophe Lincoln <pankso@slitaz.org>
date Mon Apr 18 05:16:38 2011 +0200 (2011-04-18)
parents ed55f0e369b3
children 2b919224c683
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@154 124 <h2>$(gettext "Host:") $(hostname)</h2>
pankso@154 125 <p>$(gettext "SliTaz administration and configuration Panel")<p>
pankso@154 126 </div>
pankso@154 127 <div id="actions">
pankso@154 128 <a class="button" href="$SCRIPT_NAME?top">$(gettext "Process activity")</a>
pankso@14 129 </div>
pankso@14 130
pankso@154 131 <h3>$(gettext "Summary")</h3>
pankso@14 132 <div id="summary">
pankso@33 133 <p>
pankso@154 134 $(gettext "Uptime:") $(uptime)
pankso@33 135 </p>
pankso@33 136 <p>
pankso@154 137 $(gettext "Memory in Mb")
pankso@154 138 $(free -m | grep Mem: | awk \
pankso@154 139 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}')
pankso@33 140 </p>
pankso@33 141 <!-- Close summary -->
pankso@33 142 </div>
pankso@14 143
pankso@154 144 <h4>$(gettext "Network status")</h4>
pankso@154 145 $(list_network_interfaces)
pankso@154 146
pankso@154 147 <h4>$(gettext "Filesystem usage statistics")</h4>
pankso@153 148 EOT
pankso@153 149 # Disk stats (management is done is hardwar.cgi)
pankso@153 150 table_start
pankso@153 151 df_thead
pankso@153 152 df -h | grep ^/dev | while read fs size used av pct mp
pankso@153 153 do
pankso@153 154 cat << EOT
pankso@153 155 <tr>
pankso@153 156 <td><a href="hardware.cgi">
pankso@153 157 <img src="$IMAGES/harddisk.png" />$fs</a></td>
pankso@153 158 <td>$size</td>
pankso@153 159 <td>$av</td>
pankso@153 160 <td class="pct"><div class="pct"
pankso@153 161 style="width: $pct;">$used - $pct</div></td>
pankso@153 162 <td>$mp</td>
pankso@153 163 </tr>
pankso@153 164 EOT
pankso@153 165 done
pankso@153 166 table_end
pankso@153 167 cat << EOT
pankso@153 168 <h3>$(gettext "Panel Activity")</h3>
pankso@120 169 <pre id="panel-activity">
pankso@120 170 $(cat $LOG_FILE | tail -n 8 | sort -r | syntax_highlighter activity)
pankso@76 171 </pre>
pankso@76 172
pankso@2 173 EOT
pankso@2 174 ;;
pankso@2 175 esac
pankso@2 176
pankso@14 177 xhtml_footer
pankso@14 178 exit 0