tazpanel annotate index.cgi @ rev 33

Show README in doc for now and small fix to style path
author Christophe Lincoln <pankso@slitaz.org>
date Tue Apr 05 06:06:09 2011 +0200 (2011-04-05)
parents b4e001e85045
children 5f2f88618292
rev   line source
pankso@2 1 #!/bin/sh
pankso@2 2 #
pankso@14 3 # Main CGI interface for TazPanel. In on word: KISS. Use the main cas form
pankso@14 4 # command so we are faster and dont load unneeded function. If nececarry
pankso@14 5 # you can use the lib/ dir to handle external resources.
pankso@2 6 #
pankso@2 7 echo "Content-Type: text/html"
pankso@2 8 echo ""
pankso@2 9
pankso@14 10 # Common functions from libtazpanel
pankso@14 11 . lib/libtazpanel
pankso@14 12 get_config
pankso@2 13
pankso@22 14 # Include gettext helper script.
pankso@22 15 . /usr/bin/gettext.sh
pankso@22 16
pankso@22 17 # Export package name for gettext.
pankso@22 18 TEXTDOMAIN='tazpanel-cgi'
pankso@22 19 export TEXTDOMAIN
pankso@22 20
pankso@31 21 # Network interface status
pankso@31 22 interface_status() {
pankso@31 23 if ifconfig | grep -A 1 $i | grep -q inet; then
pankso@31 24 ip=`ifconfig | grep -A 1 $i | grep inet | \
pankso@31 25 awk '{ print $2 }' | cut -d ":" -f 2`
pankso@32 26 echo "<td>connected</td><td>$ip</td>"
pankso@31 27 else
pankso@32 28 echo "<td>----</td><td>----</td>"
pankso@31 29 fi
pankso@31 30 }
pankso@31 31
pankso@32 32 # Catch network interface (network is splited this function and above
pankso@32 33 # must go in lib/libtazpanel
pankso@31 34 list_network_interfaces() {
pankso@31 35 table_start
pankso@31 36 cat << EOT
pankso@31 37 <tr id="thead">
pankso@31 38 <td>`gettext "Interface"`</td>
pankso@31 39 <td>`gettext "Name"`</td>
pankso@33 40 <td>`gettext "Status"`</td>
pankso@31 41 <td>`gettext "IP Address"`</td>
pankso@31 42 </tr>
pankso@31 43 EOT
pankso@31 44 for i in `ls /sys/class/net`
pankso@31 45 do
pankso@31 46 case $i in
pankso@31 47 eth*)
pankso@31 48 echo "<tr><td><img src='$IMAGES/ethernet.png' />$i</td>
pankso@31 49 <td>Ethernet</td> `interface_status`</tr>" ;;
pankso@31 50 wlan*|ath*|ra*)
pankso@31 51 echo "<tr><td><img src='$IMAGES/wireless.png' />$i</td>
pankso@31 52 <td>Wireless</td> `interface_status`</tr>" ;;
pankso@31 53 lo)
pankso@31 54 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td>
pankso@31 55 <td>Loopback</td> `interface_status`</tr>" ;;
pankso@31 56 *)
pankso@31 57 continue ;;
pankso@31 58 esac
pankso@31 59 done
pankso@31 60 table_end
pankso@31 61 }
pankso@31 62
pankso@2 63 #
pankso@2 64 # Commands
pankso@2 65 #
pankso@2 66
pankso@2 67 case "$QUERY_STRING" in
pankso@13 68 boot)
pankso@14 69 #
pankso@13 70 # Everything until user login
pankso@14 71 #
pankso@25 72 TITLE="- Boot"
pankso@13 73 xhtml_header
pankso@13 74 cat << EOT
pankso@13 75 <div id="wrapper">
pankso@14 76 <h2>`gettext "Boot &amp; startup"`</h2>
pankso@14 77 <p>
pankso@14 78 `gettext "Everything that appends before user login."`
pankso@14 79 </p>
pankso@14 80 </div>
pankso@13 81
pankso@13 82 <h3>`gettext "Kernel cmdline"`</h3>
pankso@13 83 <pre>
pankso@13 84 `cat /proc/cmdline`
pankso@13 85 </pre>
pankso@13 86 EOT
pankso@14 87 ;;
pankso@13 88 users|user=*)
pankso@14 89 #
pankso@13 90 # Manage system user accounts
pankso@14 91 #
pankso@8 92 TITLE="- Users"
pankso@8 93 xhtml_header
pankso@13 94 cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'`
pankso@13 95 # Parse cmdline
pankso@13 96 for opt in $cmdline
pankso@2 97 do
pankso@13 98 case $opt in
pankso@13 99 adduser=*)
pankso@13 100 user=${opt#adduser=}
pankso@13 101 cmd=adduser ;;
pankso@13 102 deluser=*)
pankso@13 103 user=${opt#deluser=}
pankso@13 104 deluser $user ;;
pankso@13 105 passwd=*)
pankso@13 106 pass=${opt#passwd=} ;;
pankso@13 107 esac
pankso@2 108 done
pankso@13 109 case "$cmd" in
pankso@13 110 adduser)
pankso@13 111 echo "$user"
pankso@13 112 echo $pass
pankso@13 113 adduser -D $user
pankso@13 114 echo "$pass" | chpasswd
pankso@13 115 for g in audio cdrom floppy video
pankso@13 116 do
pankso@13 117 addgroup $user $g
pankso@13 118 done ;;
pankso@13 119 *) continue ;;
pankso@13 120 esac
pankso@13 121 cat << EOT
pankso@13 122 <div id="wrapper">
pankso@14 123 <h2>`gettext "Manage users"`</h2>
pankso@14 124 <p>`gettext "Manage human users on your SliTaz system"`</p>
pankso@14 125 </div>
pankso@13 126 <form method="get" action="$SCRIPT_NAME">
pankso@13 127 EOT
pankso@13 128 table_start
pankso@13 129 cat << EOT
pankso@13 130 <tr id="thead">
pankso@25 131 <td>`gettext "Login"`</td>
pankso@13 132 <td>`gettext "User ID"`</td>
pankso@13 133 <td>`gettext "Name"`</td>
pankso@13 134 <td>`gettext "Home"`</td>
pankso@13 135 <td>`gettext "SHell"`</td>
pankso@13 136 </tr>
pankso@13 137 EOT
pankso@13 138 for i in `cat /etc/passwd | cut -d ":" -f 1`
pankso@13 139 do
pankso@13 140 if [ -d /home/$i ]; then
pankso@13 141 login=$i
pankso@13 142 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
pankso@13 143 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
pankso@13 144 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
pankso@13 145 sed s/,,,//`
pankso@13 146 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
pankso@13 147 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
pankso@13 148 echo '<tr>'
pankso@13 149 echo "<td><input type='hidden' name='user' />
pankso@13 150 <input type='checkbox' name='deluser' value='$login' />
pankso@13 151 <img src='$IMAGES/user.png' />$login</td>"
pankso@13 152 echo "<td>$uid:$gid</td>"
pankso@13 153 echo "<td>$name</td>"
pankso@13 154 echo "<td>$home</td>"
pankso@13 155 echo "<td>$shell</td>"
pankso@13 156 echo '</tr>'
pankso@13 157 fi
pankso@13 158 done
pankso@13 159 table_end
pankso@13 160 cat << EOT
pankso@14 161 <div>
pankso@14 162 <input type="submit" value="`gettext "Delete selected user"`" />
pankso@14 163 </div>
pankso@13 164 </form>
pankso@13 165
pankso@25 166 <h3>`gettext "Add a new user"`</h3>
pankso@13 167 <form method="get" action="$SCRIPT_NAME">
pankso@28 168 <input type="hidden" name="user" />
pankso@25 169 <p>`gettext "User login:"`</p>
pankso@28 170 <p><input type="text" name="adduser" size="30" /></p>
pankso@25 171 <p>`gettext "User password:"`</p>
pankso@28 172 <p><input type="password" name="passwd" size="30" /></p>
pankso@25 173 <input type="submit" value="`gettext "Create user"`" />
pankso@28 174 </form>
pankso@13 175 EOT
pankso@13 176 ;;
pankso@2 177 network)
pankso@14 178 #
pankso@13 179 # Network configuration
pankso@14 180 #
pankso@8 181 TITLE="- Network"
pankso@8 182 xhtml_header
pankso@13 183 cat << EOT
pankso@13 184 <div id="wrapper">
pankso@14 185 <h2>`gettext "Networking`</h2>
pankso@14 186 <p>`gettext "Manage network connection and services`</p>
pankso@14 187 </div>
pankso@14 188
pankso@31 189 `list_network_interfaces`
pankso@31 190
pankso@14 191 <h3>Output of: ifconfig -a</h3>
pankso@14 192 <pre>
pankso@14 193 `ifconfig -a`
pankso@14 194 </pre>
pankso@13 195 EOT
pankso@14 196 ;;
pankso@2 197 hardware)
pankso@14 198 #
pankso@14 199 # Hardware drivers, devices, filesystem, screen
pankso@14 200 #
pankso@8 201 TITLE="- Hardware"
pankso@8 202 xhtml_header
pankso@13 203 cat << EOT
pankso@13 204 <div id="wrapper">
pankso@14 205 <h2>`gettext "Drivers &amp; Devices"`</h2>
pankso@14 206 <p>`gettext "Manage your computer hardware`</p>
pankso@14 207 </div>
pankso@13 208 EOT
pankso@2 209 echo '<pre>'
pankso@14 210 fdisk -l | fgrep Disk
pankso@13 211 echo '</pre>'
pankso@14 212 echo '<pre>'
pankso@14 213 df -h | grep ^/dev
pankso@14 214 echo '</pre>'
pankso@14 215 echo '<pre>'
pankso@14 216 lspci
pankso@14 217 echo '</pre>'
pankso@14 218 ;;
pankso@2 219 *)
pankso@14 220 #
pankso@2 221 # Default xHTML content
pankso@14 222 #
pankso@8 223 xhtml_header
pankso@2 224 cat << EOT
pankso@13 225 <div id="wrapper">
pankso@14 226 <h2>`gettext "Host:"` `hostname`</h2>
pankso@14 227 <p>`gettext "SliTaz administration et configuration Panel"`<p>
pankso@14 228 </div>
pankso@14 229
pankso@14 230 <h3>`gettext "Summary"`</h3>
pankso@14 231 <div id="summary">
pankso@33 232 <p>
pankso@33 233 `gettext "Uptime:"` `uptime`
pankso@33 234 </p>
pankso@33 235 <p>
pankso@33 236 `gettext "Memory in Mb"`
pankso@33 237 `free -m | grep Mem: | awk \
pankso@33 238 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'`
pankso@33 239 </p>
pankso@33 240 <!-- Close summary -->
pankso@33 241 </div>
pankso@14 242
pankso@33 243 <h4>`gettext "Network status"`</h4>
pankso@33 244 `list_network_interfaces`
pankso@33 245
pankso@33 246 <h4>`gettext "Filesystem usage statistics"`</h4>
pankso@14 247 <pre>
pankso@14 248 `df -h | grep ^/dev`
pankso@14 249 </pre>
pankso@2 250 EOT
pankso@2 251 ;;
pankso@2 252 esac
pankso@2 253
pankso@14 254 xhtml_footer
pankso@14 255 exit 0